欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

制作不规则边框图片,使用python

程序员文章站 2022-04-16 16:22:01
前言:前几日见到有的图片竟然边框不规则,于是有了兴趣就像上图这类图片上网查询后原来这是32位的png格式图片,有(b,g,r,alpha)(b,g,r,alpha)(b,g,r,alpha)其中alpha为透明度,当透明度为alpha时就如上图,当alpha为255时就是原始色彩于是发现win10自带的截屏使用如上功能就可以制作这种图片接下来就用python写了个小程序,可以把原(r,g,b)<=(20,20,20)(r,g,b)<=(20,20,20)(r,....

前言:前几日见到有的图片竟然边框不规则,于是有了兴趣

制作不规则边框图片,使用python

就像上图这类图片
上网查询后原来这是32位的png格式图片,有
(b,g,r,alpha)(b,g,r,alpha)
其中alpha为透明度,当透明度为alpha时就如上图,当alpha为255时就是原始色彩

制作不规则边框图片,使用python

于是发现win10自带的截屏使用如上功能就可以制作这种图片

制作不规则边框图片,使用python
制作不规则边框图片,使用python

接下来就用python写了个小程序,可以把原
(r,g,b)<=(20,20,20)(r,g,b)<=(20,20,20)
的全部转为透明
效果如上,代码如下:

import cv2
import numpy as np
 
img = cv2.imread("pic/p4.jpg")
b_channel, g_channel, r_channel = cv2.split(img)
x,y,d=img.shape
alpha_channel = np.ones(b_channel.shape, dtype=b_channel.dtype) * 255
for i in range (x):
    for j in range (y):
        if(img[i,j,0]<=20 and img[i,j,1]<=20 and img[i,j,2]<=20):
            alpha_channel[i,j] = 0
        else:
            alpha_channel[i,j] = 255
img_BGRA = cv2.merge((b_channel, g_channel, r_channel, alpha_channel))
cv2.imwrite("pic/p2.png", img_BGRA)

图片来源网络,侵删,欢迎各位批评指正

本文地址:https://blog.csdn.net/libizhide/article/details/107395591