国旗头像 开放python源代码

发布一下 0 0

最近很火的国旗头像制作使用python很容易就完成了

  1. 第一步是找一张国旗图片
  2. 第二步将国旗图片处理成渐变透明度的png图片
  3. 找一张头像图片,将两张图片重叠即可
  4. 下面直接给出源码 有用的话麻烦点个关注

import mathimport cv2from PIL import Imagedef 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 imagedef 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')

版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除

本文地址:http://0561fc.cn/52155.html