国旗头像开放python源代码
最近很火的国旗头像制作使用python很容易就完成了第一步是找一张国旗图片第二步将国旗图片处理成渐变透明度的png图片找一张头像图片,将两张图片重叠即可下面直接给出源码 有用的话麻烦点个关注import math import cv2 from PIL import Image def image_gradual(image_name): """图片渐变 :param image_name: 图片路径 :return: 图片数组 """ image = cv2.imread(image_name, 1) image = cv2.cvtColor(image, cv2.COLOR_BGR2BGRA) b, g, r, a = cv2.split(image) h, w, c = image.shape for i in range(w): v = 255 - (255/w)*i a[:, i] = [v - (v * (k/h)) for k in range(1, h+1)] return cv2.merge([b, g, r, a]) def image_gradual_pro(image_name): """图片渐变 图片大小修改 加了横向和纵向 添加了简单的函数使渐变在越往右边和越往下面图片透明度下降越快 :param image_name: :return: """ image = cv2.imread(image_name, 1) image = image[100:, 190:] h, w, c = image.shape image = image[:, :h] w = h image = cv2.cvtColor(image, cv2.COLOR_BGR2BGRA) b, g, r, a = cv2.split(image) for i in range(w): # v = 255 - ((255 / w) * i + (i * (w/w) / w)) v = math.ceil(255 - (255 / (w * 1.2)) * i) if v < 0: v = 0 a[:, i] = [v / (1 + j / (h + v * 20)) for j in range(h)] image = cv2.merge([b, g, r, a]) return image def paste_image(src, paste): """粘贴图片到另外一张图片上 图片重叠 不知道怎么使用数组 就使用pillow的功能 :param src: :param paste: :return: """ img = Image.open(src) img_top = Image.open(paste) img = img.resize(img_top.size) img.paste(img_top, (0, 0), img_top) img.save("res.png") if __name__ == "__main__": image = image_gradual_pro("b_star.jpg") cv2.imwrite("b_star_pro.png", image) paste_image("img3.jpg", "b_star_pro.png")