AI 助理
备案 控制台
开发者社区 IoT 文章 正文

元旦C位出道,用微信好友头像拼个中国地图吧!

简介: 准备用好友头像拼接成背景图,用中间透明的中国地图加以覆盖,即可生成一个酷炫的照片地图。

几天前中秋节的时候用微信好友头像加生成祝福文字,当时用 Python 代码来实现时,采用的思路结合微信好友头像和点阵字,弄成头像拼字。


   马上就元旦了,我们把素材换一下,搞一个新玩法:准备用好友头像拼接成背景图,用中间透明的中国地图加以覆盖,即可生成一个酷炫的照片地图。

话不多说,效果如下:

image.png

图片展示原因,未能显示岛屿等细节)


整体思路是这样婶儿的

  • 获取所有微信好友头像
  • 准备一张透明的中国地图
  • 把微信好友头像作成照片墙
  • 黏合照片墙和透明地图即可


获取好友头像

   这个我在之前用微信好友头像生成汉字时已经做好了、直接拿过来用即可。

   如果你不知道怎么获取微信好友头像、请移步到下面:里面有详细的获取微信好友头像的说明。

用微信好友头像生成祝福文字,你就是朋友圈最靓的仔


准备中国地图轮廓素材

   原理比较简单,实现起来也不复杂,最最重要的是获取中间透明的地图轮廓图片。我们直接在网上下载一个中国轮廓透明地图:

ChinaMap.png

(图片展示原因,未能显示岛屿等细节)


拼接图片墙

   我们用微信好友头像拼接成一张大的图片墙,如果你愿意也可以自己PS一下。

image.png


   不过我们这里用Python里面的 PIL 图片处理模块来操作,主要是将小图拼接成与地图轮廓图同等大小的背景图(图片墙):

代码如下:

defcombine_pic(folder,unit_size):
"""用图片生成一张地图大小的照片墙    """# 读取地图轮廓图img=Image.open("ChinaMap.png")
w,h=img.size#新建与主图一样大的白色底图new_img=Image.new('RGB',(w,h),'#FFFFFF')
#根据小格尺寸,计算大图可容纳小图数量y_index=h//unit_sizex_index=w//unit_sizepic_list= []
foriteminos.listdir(folder):
#对文件夹中的 jpg 图片格式筛选ifitem.endswith(".jpg") oritem.endswith(".jpeg") :
pic_list.append(item)
#获取素材图片数目total=len(pic_list)
x=0y=0foriinrange(x_index*y_index):
#打印当前进度print(f"当前进度{i}/{x_index*y_index}")
try:
# 对素材图缩放至小格大小test=Image.open(f"{folder}/"+pic_list[i%total]).resize((unit_size,unit_size), Image.ANTIALIAS)
exceptIOError:
print("图片读取失败,跳过该图片")  # 图片会读取失败continue#将缩放成小格的素材图按顺序贴到白色底图上new_img.paste(test,(x*unit_size,y*unit_size))
x+=1ifx==x_index:
x=0y+=1print("照片墙合成完毕")
#保存照片墙new_img.save("PhotoWall.jpg",quality=100)
paste_map() #调用地图合成函数


地图轮廓贴图

   到目前为止我们就有了2张图片,一张透明的中国地图,以及一张用微信好友头像拼接的图片墙。

   有了图片墙以及要覆盖在上面的地图轮廓图,只要将轮廓图贴在图片墙上即可收工。

代码如下:

defpaste_map():
"""用透明地图覆盖头像图片    """#读取合成后的素材图src1=Image.open("PhotoWall.jpg")
#读取地图轮廓图src2=Image.open("ChinaMap.png")
src1.paste(src2,(0,0),src2)
savename="result{}.png".format(unit_size)
src1.save(savename)
print("头像地图制作完毕!")
os.system('pause')  #手动退出提示

image.png

(图片展示原因,未能显示岛屿等细节)


整体流程只需要4个步骤;

  • 准备好图片(微信好友头像)
  • 用图片生成一张图片墙
  • 准备一张透明的地图
  • 将图片墙和地图整合


完整代码:


https://github.com/huaisha1224/Python-Example



注意事项


  • 由于图片墙和地图黏合时多出来的部分会被透明处理,所以会看不到
  • 生成图片墙的时候请根据头像数量多尝试小图大小

怀沙
目录
相关文章
小马大咖
|
存储 缓存 小程序
微信小程序如何获取微信昵称和头像
微信小程序如何获取微信昵称和头像
小马大咖
232 0
Tom弹架构
|
设计模式 Java uml
微信和QQ这么多群,该如何管理好友关系?
在现实生活中,中介者的存在是不可缺少的,如果没有了中介者,我们就不能与远方的朋友进行交流。各个同事对象将会相互进行引用,如果每个对象都与多个对象进行交互,则会形成如下图所示的网状结构。
Tom弹架构
111 1
朝阳39
|
3月前
|
存储 小程序 API
【微信小程序-原生开发+云开发+TDesign】修改用户头像(含wx.chooseMedia,wx.cloud.uploadFile,wx.cloud.deleteFile的使用)
【微信小程序-原生开发+云开发+TDesign】修改用户头像(含wx.chooseMedia,wx.cloud.uploadFile,wx.cloud.deleteFile的使用)
朝阳39
69 0
【微信小程序-原生开发+云开发+TDesign】修改用户头像(含wx.chooseMedia,wx.cloud.uploadFile,wx.cloud.deleteFile的使用)
朝阳39
|
3月前
|
小程序 JavaScript 安全
【微信小程序-原生开发】转发给好友/群,分享到朋友圈(含单页模式访问云开发数据库的方法)
【微信小程序-原生开发】转发给好友/群,分享到朋友圈(含单页模式访问云开发数据库的方法)
朝阳39
144 0
朝阳39
|
3月前
|
小程序
【微信小程序-原生开发】TDesign 实战模板——带性别图标的头像
【微信小程序-原生开发】TDesign 实战模板——带性别图标的头像
朝阳39
56 0
朝阳39
|
3月前
|
小程序 数据库 C++
【微信小程序-原生开发】实用教程17 - 详情页触发列表页刷新,点击图片放大预览,转发给好友/群,分享到朋友圈
【微信小程序-原生开发】实用教程17 - 详情页触发列表页刷新,点击图片放大预览,转发给好友/群,分享到朋友圈
朝阳39
40 0
一笑轮回~
|
3月前
|
缓存 容器
Flutter实现仿微信群头像功能
Flutter实现仿微信群头像功能
一笑轮回~
55 0
weixin_836869520
|
4月前
|
API 开发工具
企业微信SDK接口API调用-触发推送企业微信微信好友
企业微信SDK接口API调用-触发推送企业微信微信好友
weixin_836869520
70 0
向宇it
|
4月前
微信小游戏全局开启好友和朋友圈分享功能
微信小游戏全局开启好友和朋友圈分享功能
向宇it
51 0
weixin_836869520
|
4月前
|
API 开发工具
企业微信api接口调用-通过手机号或微信好友添加客户
企业微信api接口调用-通过手机号或微信好友添加客户
weixin_836869520
182 0

热门文章

最新文章

  • 1
    微信公众帐号开发-消息创建时间long型与标准时间的互相转换
  • 2
    MVC5 的MicrosoftOwinSecurity扩展插件——微信,QQ登录第三方源码
  • 3
    Android 分享微信好友 朋友圈
  • 4
    关于h5纯网页(非微信环境)扫二维码扫码实现的探索研究
  • 5
    【微信小程序】图片上传组件“mp-uploader“(weui)
  • 6
    微信小程序页面之间的传值
  • 7
    Windows 微信兼容性问题:微信截图放大解决办法。
  • 8
    有关微信开通企业支付的问题
  • 9
    微信小程序把玩(三)tabBar底部导航
  • 10
    【Android 控件使用及源码解析】 GridView规则显示图片仿微信朋友圈发图片
  • 1
    UniApp与微信小程序介绍及区别
    508
  • 2
    企业微信应用结合Cpolar内网穿透实现固定域名验证回调本地接口服务
    166
  • 3
    微信小程序开发工具的使用,各个配置文件详解,小程序开发快速入门(二)
    478
  • 4
    微信小程序开发工具的使用,各个配置文件详解,小程序开发快速入门(一)
    249
  • 5
    轻松学会微信小程序开发(一)
    204
  • 6
    使用阿里云短信+微信短链接跳转微信小程序
    418
  • 7
    微信小程序开发1
    130
  • 8
    【Python+微信】【企业微信开发入坑指北】4. 企业微信接入GPT,只需一个URL,自动获取文章总结
    126
  • 9
    【Python+微信】【企业微信开发入坑指北】3. 如何利用企业微信API给微信群推送消息
    249
  • 10
    【Python+微信】【企业微信开发入坑指北】2. 如何利用企业微信API主动给用户发应用消息
    218
  • 相关课程

    更多
  • 相册服务中的故事生成算法介绍
  • 智能创作赛(初赛):相册应用中的故事生成算法介绍
  • 智能创作赛(复赛):相册应用中的视频故事生成算法介绍
  • 相关电子书

    更多
  • 微信广告引擎与播放节奏算法实践
  • 微信H5视频播放器在海量业务下的实践
  • 微信高效运维之路
  • 相关实验场景

    更多
  • 在PAI ArtLab一键实现欧洲杯粉丝专属贴纸制作
  • 小试牛刀,一键部署电商商城
  • 下一篇
    AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片

    玻璃钢生产厂家下山虎玻璃钢雕塑图片北京商场美陈制造天津广西玻璃钢人物雕塑河南商场美陈造景天津玻璃钢雕塑园定西动物玻璃钢雕塑玻璃钢花盆效果怎么样佛山三水商场美陈东莞游乐场玻璃钢雕塑麒麟玻璃钢雕塑广东环保玻璃钢雕塑哪家便宜南阳标牌标识玻璃钢仿铜雕塑长治玻璃钢动物雕塑泉州玻璃钢雕塑销售温州组合式玻璃钢雕塑摆件精美玻璃钢卡通雕塑益阳玻璃钢仿铜雕塑福建走廊商场美陈哪家好浙江多彩玻璃钢雕塑方法奉贤区拉丝玻璃钢雕塑优良玻璃钢雕塑可量尺定做江苏室内商场美陈有哪些枣庄玻璃钢花盆雕塑定制厂家浙江特色商场美陈哪里买成都玻璃钢雕塑制品厂家小提琴玻璃钢花盆台湾玻璃钢雕塑美人鱼玻璃钢仿真马雕塑玻璃钢花盆雕塑多少钱一平米绵阳玻璃钢卡通雕塑费用香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

    玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化