上一篇文字用python爬取后宫佳丽三千,我们爬取了很多小姐姐,太多了怎么办,没事,直接做成照片墙,我全都要
效果图:

项目结构:

完整代码:

from PIL import Image, ImageDraw, ImageFont
# 解决读取图片报错
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
import os# 获取文字
def gen_text_img(text, font_size, font_path=None):'''输入:text:照片墙的样式文字font_size:字体的大小font_path:字体返回:文字图像'''font = ImageFont.truetype(font_path, font_size)(width, length) = font.getsize(text)text_img = Image.new('RGBA', (width, length))draw = ImageDraw.Draw(text_img)# 从左上角开始绘制draw.text((0, 0), text, fill=(0, 0, 0), font=font)return text_imgdef trans_alpha(img, pixel):'''R:红G:绿B:蓝A:透明'''_, _, _, alpha = img.split()alpha = alpha.point(lambda i: pixel[-1] * 10)img.putalpha(alpha)return imgdef picture_wall_mask(text_img, edge_len, pic_dir):'''输入:text_img:文字图像edge_len:照片边长(用于扩大像素)pic_dir:路径'''# 像素扩大new_img = Image.new('RGBA', (text_img.size[0] * edge_len, text_img.size[1] * edge_len))file_list = os.listdir(pic_dir)img_index = 0for x in range(0, text_img.size[0]):for y in range(0, text_img.size[1]):pixel = text_img.getpixel((x, y))file_name = file_list[img_index % len(file_list)]try:# 导入图片img = Image.open(os.path.join(pic_dir, file_name)).convert('RGBA')img = img.resize((edge_len, edge_len))img = trans_alpha(img, pixel)# 进行替换new_img.paste(img,(x * edge_len, y * edge_len))img_index += 1except Exception as e:print(f"文件打开失败:{file_name} + {e}")return new_imgdef main(text='我全都要',font_size=20,edge_len=60,pic_dir="./wall",out_dir="./out",font_path='buzz_cloud_font.ttf'):'''生成照片墙:param text: 照片墙字符样式:param font_size: 字体大小:param edge_len: sub picture's egde length'''if len(text) >= 1:text_ = ' '.join(text)print(f"generate text wall for '{text_}' with picture path:{pic_dir}")text_img = gen_text_img(text_, font_size, font_path)img_ascii = picture_wall_mask(text_img, edge_len, pic_dir)img_ascii.save(out_dir + os.path.sep + ''.join(text) + '.png')if __name__ == '__main__':main()

main方法关键的地方说明一下:
text:这里可以随便输入,英文或者中文
pic_dir:这是我们源照片的地方,我新建了一个文件夹wall,将照片都仍了进去
out_dir:这是合成后照片输出位置,新建一个文件夹叫out
font_path:这是字体,我们将一个文件放到目录下buzz_cloud_font.ttf
完整项目下载地址:https://github.com/wangqing-github/python-study-demo.git

python将后宫佳丽三千做成照片墙相关推荐

  1. 一碗潮汕白糜,后宫佳丽三千

    以前潮汕人穷,所以在能充饥下饭的同时,会穷中求变.于是,潮汕人一日三餐都离不开粥,他们把白粥叫做"糜",而在广州却称之为"三滚粥".这种潮汕白粥,就是把米搁在锅 ...

  2. python是干什么用的视频-python基础教程千锋最新视频学完之后可以做什么

    从目前来看,人工智能异常火爆,而Python作为人工智能首选语言自然受到了欢迎,而且Python语言在学术上也很受青睐.就算不是计算机专业的人,很多都在学习python.那么python基础教程千锋最 ...

  3. 后宫佳丽三千,假如古代皇帝也懂负载均衡算法...

    古代皇帝,后宫佳丽三千,没法做到雨露均沾,但为了繁衍后代,子嗣繁盛,弱水三千,只取一瓢饮显然是不行的.不同的朝代有不同的宠幸妃子的方法,著名的有羊车望幸.掷筛侍寝.翻牌悬灯等等.如果皇帝懂得负载均衡算 ...

  4. python 读取数据库内存爆_解决python读取几千万行的大表内存问题

    Python导数据的时候,需要在一个大表上读取很大的结果集. 如果用传统的方法,Python的内存会爆掉,传统的读取方式默认在内存里缓存下所有行然后再处理,内存容易溢出 解决的方法: 1)使用SSCu ...

  5. 用python做头像_如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  6. python读取千万级数据库数据类型_解决python读取几千万行的大表内存问题

    Python导数据的时候,需要在一个大表上读取很大的结果集. 如果用传统的方法,Python的内存会爆掉,传统的读取方式默认在内存里缓存下所有行然后再处理,内存容易溢出 解决的方法: 1)使用SSCu ...

  7. python表白代码照片墙-如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  8. python画一个心形照片墙怎么摆_柚子教大家如何用python做精美的照片墙!五分钟学会get新技能...

    在朋友圈中你肯定会见到过下面这样的照片,由数张照片拼接成一张具有规则图案形状的照片墙. 其实这样的一张照片也可以用 Python 实现,主要用到的是 python 中的 Image 库:制作之前需要一 ...

  9. python制作心形照片墙_用Python把情人节拍的照片,做成照片墙

    "我写过最得意的代码,就是让你答应做我女朋友的那串代码." 撩妹可不能全靠一张嘴 礼物一定要走心又有心! 恋习Python教你一招 搞定速速开撩! 用Python为她DIY一张照片 ...

最新文章

  1. c++ log函数_认识这19种深度学习损失函数,才能说你了解深度学习!
  2. 数据结构源码笔记(C语言):线性表的顺序表示
  3. java线程占用CPU_在windows下揪出java程序占用cpu很高的线程并完美解决
  4. 天梯赛 喊山 bfs
  5. mysql自动备份发邮箱,定时任务自动备份数据库并邮件发送
  6. Supervisord管理
  7. idea 无效的目标发行版_maven构建异常(无效的目标发行版: 1.8)
  8. UI素材|屏幕移动线框套件
  9. 植物大战僵尸的java源代码_植物大战僵尸java源码
  10. MAC-快捷键打开终端
  11. 信息安全方面优秀论文
  12. 理解Room数据库的迁移(Migration)
  13. 项目1:基于Java API文档制作的搜索引擎
  14. (1)Part01-项目介绍-01-在线教育行业介绍
  15. jQuery获得当前元素id
  16. 数据库主键、外键和唯一键的区别
  17. c语言循环题兔子第三个月生,C语言·古典问题: 兔子总数
  18. 当前时间转换成UTC时间
  19. 淘宝官方的天天特卖活动应该如何进行进行设置?
  20. python余数不等于的符号_有乐 这些符号如此重要,不知道就等于“白练琴”

热门文章

  1. AIE功能介孔二氧化硅/环糊精辅助的荧光二氧化硅纳米粒子/α-环糊精改性SiO2纳米微球/基于MOFs或中空介孔二氧化硅复合载体
  2. delphi 调用 腾讯云短信
  3. Zig-Zag(Z型)填数
  4. python字符串修改
  5. 第13章 原始套接字
  6. html图片热区map、area的使用
  7. GNSS原理及技术(三)——差分定位技术
  8. 护士资格证考试机考可以用计算机吗,护士资格人机对话考试怎么考?
  9. st8s003 c语言编译器,什么原因导致ST单片机STM8S003F3P6这个8位机缺货
  10. mini《猜字》游戏,谁玩谁迷糊