缘起

轩轩小朋友一直在学习画画,前段时间画了张哪吒的图,看着着实让人喜欢

本来想直接换成微信头像的,又觉得有失个性,还是研究一下,怎么放到头像的右下角吧.

开工

把大象放进冰箱总共分几步呢

第一步:把两张图片都调整成方形

第二步:被合并的图片调整成圆形

第三步:两图合并

环境:

python:3.8.6

Pillow:8.0.1

Pillow就是PIL(Python Imaging Library)了,在Python3叫Pillow,这个之前在<< Python|图片灰化处理 >>里提过,是Python处理图片的不二选择.

安装:

pip install Pillow
  • 把两张图片都调整成方形

    原理就是,取出图片大小,以最小边的为准,从中间缩小

    from PIL import Imagedef crop_square(img):
    x, y = img.size
    center = (int(x/2), int(y/2))
    length = int(min(x, y)/2)
    left_top = (center[0] - length, center[1] - length)
    right_buttom = (center[0] + length, center[1] + length)
    new_img = img.crop(left_top + right_buttom)
    return new_img
  • 被合并的图片调整成圆形

    先打开图片,然后调成方形,再调整成圆形并保存

    def img_circle(img_path,cir_path):
    ima = Image.open(img_path).convert("RGBA")
    ima = crop_square(ima)
    size= ima.size
    r2  = size[0]
    r3  = int(r2/2)
    imb = Image.new('RGBA', (r3*2, r3*2))
    pima= ima.load() # 像素的访问对象
    pimb= imb.load()
    r   = float(r2/2) #圆心横坐标
    for i in range(r2):for j in range(r2):lx = abs(i-r) #到圆心距离的横坐标ly = abs(j-r) #到圆心距离的纵坐标l = (pow(lx,2) + pow(ly,2))** 0.5 # 三角函数 半径if l < r3:pimb[i-(r-r3),j-(r-r3)] = pima[i,j]
    imb.save(cir_path)
  • 两图合并

    注释的比较明白了,比较困难的是图片去背景花了一些时间

    def img_join(file_bg,file_front,end_png):
    #打开原始图片,切成方形,并调整大小
    img_bg  = crop_square(Image.open(file_bg)).resize((573,573))
    #打开上层图片并调整大小
    img_front = Image.open(file_front).resize((250,250))
    #上层图片合并到原始图片,并透明上层背景
    r, g, b, a = img_front.split()
    img_bg.paste(img_front, (323,323),mask=a)
    img_bg.save(end_png)

    使用

    准备两张图片,指定输出路径,走你.

    if __name__ == '__main__':
    base_name       = 'nezha'
    file_front      =f'./img/{base_name}.jpg'
    cir_file_name   =f'./img/cir_{base_name}.png'
    img_circle(file_front,cir_file_name)
    end_png         =f'./img/end_{base_name}.jpg'
    img_join(file_bg,cir_file_name,end_png)

    接入到公众号

    以为到这里就结束了吗?

    为了换个微信图像,需要从手机传一张图片到电脑,python合成,再传回手机,再去微信设置,似乎很繁琐,还不容易批量复制:妈妈想要怎么办,爷爷奶奶姥姥姥爷想要怎么办?技术就是生产力,怎样简化这个步骤呢?把这个功能放到微信公众号不就可以了吗,微信公众号发送一张图片,收到图片以后,处理再返回,直接微信保存,再设置头像,完美.

    点击最下面的 +

    选择一张图片上传.

    然后回复相应的数字就可以了.

    得到图片以后再去个人中心设置.

    对了,顺便把姜子牙,大圣,还有疯狂动物城里的兔朱迪和狐尼克也加上了.

Python|把你喜欢的照片合成到微信头像!相关推荐

  1. Python一键下载1000张惊艳的微信头像

    一直以来,对选用一个合适的微信头像,感到比较头疼. 今天为大家推荐1000多张,非常惊艳的能用做微信头像的图片,都已按照类别分好类,文末提供下载方法,相信大家一定能从中找到一款自己喜欢的. 1 req ...

  2. Image Pro Plus6进行荧光分析与荧光照片合成学习笔记

    Image Pro Plus6进行荧光分析与荧光照片合成学习笔记 1. 前言 2.荧光分析 3. 荧光照片合成 1. 前言 本文是一个小结,简单的记录了利用Image Pro Plus 6.0进行免疫 ...

  3. Crawler:反爬虫之基于urllib库+伪装浏览器方式实现从各种网站上(以百度贴吧为例)获得你喜欢的照片下载到本地电脑上

    Crawler:反爬虫之基于urllib库+伪装浏览器方式实现从各种网站上(以百度贴吧为例)获得你喜欢的照片下载到本地电脑上 目录 输出结果 实现代码 输出结果 后期更新-- 实现代码 import ...

  4. python修图和ps_会照片处理的不只是ps,还有Python!

    女朋友老是吵着要修图,作为程序员,只会敲代码,不会ps啊,真是令人头大. 程序员是这么容易被难到的吗?肯定不会!最近发现了程序员的p图神器--python. python也可以修图吗?是滴!下面就带你 ...

  5. (附源码连接)利用AI将2D照片合成3D场景

    利用AI将2D照片合成3D场景 新的 NVIDIA NGP Instant NeRF 很好地介绍了神经辐射场的入门. 在短短一个小时内,您就可以编译代码库.准备图像并训练您的第一个 NeRF. 与其他 ...

  6. python照片转卡通_用Python做一个网站,照片生成漫画头像,有这个网站就够了。...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python进阶者 ( 想要学习Python?Pyth ...

  7. python和本人很像的卡通头像_用Python做一个网站,照片生成漫画头像,有这个网站就够了。...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python进阶者 对于动漫,大家一定都不陌生,小编周 ...

  8. 用Python做一个网站,照片生成漫画头像,有这个网站就够了。

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python进阶者 ( 想要学习Python?Pyth ...

  9. antd select option 设置字体颜色_匹配颜色是照片合成重要关键点

    在Photoshop中组合照片(也称为照片合成)时,不同的照片通常不匹配.颜色和色调是不同的,这会使最终的合成物看起来很假.我将向您展示如何匹配图层并将它们融合在一起,以便您的照片拼贴看起来很真实,以 ...

最新文章

  1. 电脑罗盘时钟代码_苹果电脑怎么设置数字时钟屏保 Word Clock for Mac安装教程
  2. How to find Material based on Sales Organization and Distribution Channel
  3. 批量删除html网页,批量删除.html · panghuamama/Clearly Local - Gitee.com
  4. 创业与老子的顺其自然
  5. Happy Valentine's Day
  6. matlab中bitget函数用法_MATLAB基础函数命令
  7. base包中自定义activity
  8. 等级考试(二):二级C++---宏观把控
  9. 《淘宝网开店 SEO 推广 营销 爆款 实战200招》——1.3 网上开店的热门行业有哪些...
  10. Linux (转)解析 xinetd.conf
  11. Vue项目--仿大麦网移动端
  12. 第1周练习 货币转换 I
  13. 一起学Vue自定义组件之拼图小游戏
  14. 服务器机箱销售跑哪些地方,网购主机老出问题?其实你早已上当受骗,这些猫腻很多人都不知道...
  15. 实例简述Spring AOP之对AspectJ语法的支持
  16. 华中农业大学教务系统自动评教脚本
  17. ARCore之路-放置物体
  18. 终端界面 进程 I/O 控制函数
  19. kinetics-skeleton格式行为数据提取方法
  20. 病原菌基因组快速搜索算法实现

热门文章

  1. 华三讲堂:Overlay网络与物理网络的关系
  2. 7.MPLS VP恩 后门链路shamlink
  3. C++-练习-105
  4. Vue-基于组件写简单页面-前端网页简历
  5. 6.7.0  ESX host上clone server时,最好server上没有镜像
  6. 知行 EDI 无缝替换 Sterling B2B Integrator
  7. Flutter智慧城市App
  8. linux强行删除损坏的mysql
  9. java数组里套数组_用JAVA进行Json数据解析(对象数组的相互嵌套)
  10. Node之父重构的Deno终于发布了,它终究会取代Node吗?