程序员最浪漫的表白方式,将情书写在她的照片里,Python简直太厉害啦~

这不光棍节快到了,表弟准备写一封情书给他的女神,想在光棍节之前脱单。

程序员最浪漫的表白方式,将情书写在她的照片里,Python简直太厉害啦~
为了提高成功率,于是跑来找我给他参谋参谋,本来我是不想理他的,不过谁让他是我表弟呢(请我洗jio),于是教给他程序员的终极浪漫绝招,先假装给女神拍照,然后再把情书写到她的照片上打印出来送给她,嘿嘿~

程序员最浪漫的表白方式,将情书写在她的照片里,Python简直太厉害啦~

实现步骤

想要实现把情书写在像素中,那么我们就需要用到pillow这个神器。

众所周知,图片是由无数个像素所组成的,把图片无限放大,就会看到一个个小方格,这就是像素。

1、准备工作

我们都知道,针对图片进行操作,就会用到Pillow这个库,因为Pillow 是第三方库,所以在使用前,我们要使用pip进行安装。

pip install Pillow
# 兄弟们学习python,有时候不知道怎么学,从哪里开始学。掌握了基本的一些语法或者做了两个案例后,不知道下一步怎么走,不知道如何去学习更加高深的知识。
# 那么对于这些大兄弟们,我准备了大量的免费视频教程,PDF电子书籍,以及源代码!
# 还会有大佬解答!
# 都在这个q群里了 279199867
#  欢迎加入,一起讨论 一起学习!

 

2、Pillow 介绍

安装完成后,我们先来简单介绍几个常用示例

新建及保存图片

from PIL import Image

#创建一张新的图片:mode 为RGB,size :520x520 ,color :0,100,200
img = Image.new('RGB',(520,520),(255,192,203))

# 保存图片
img.save('img.jpg')

 

运行代码,可以看到,在默认路径自动创建一张img.jpg图片。

程序员最浪漫的表白方式,将情书写在她的照片里,Python简直太厉害啦~

来看看图片是什么样子的

程序员最浪漫的表白方式,将情书写在她的照片里,Python简直太厉害啦~
粉粉嫩嫩的,就是它了~

重新绘制图片

我们在上面生成的图片中,画两条线

from PIL import Image,ImageDraw

#创建一张新的图片
#img = Image.new('RGB',(520,520),(0,100,200))
#img.save('img.jpg')

#直接打开生成的img.jpg图片
img = Image.open('img.jpg')

#取得绘图对象,需要绘制对角线
draw = ImageDraw.Draw(img)

#绘制对角线
draw.line((0,0,img.size[0],img.size[1]),fill = 128 ,width = 2)
draw.line((0,img.size[1],img.size[0],0),fill = 128 ,width = 2)
#保存图片
img.save('img-line.jpg')

 

再来看看生成的图片

程序员最浪漫的表白方式,将情书写在她的照片里,Python简直太厉害啦~
莫得问题

图片合并

然后我们把两张图片合并

from PIL import Image

#直接打开img.jpg图片
img = Image.open('img.jpg')

#创建一个小的图片
img_small = Image.new('RGB',(30,30),'yellow')

#把img_samll 黏贴在 img.jpg图片的 的20x20的位置
img.paste(img_small,(20,20))

#保存新生成的图片
img.save('img-paste.jpg')

 

看看效果如何

程序员最浪漫的表白方式,将情书写在她的照片里,Python简直太厉害啦~

确认过眼神,是我要的效果~

3、实战演练

思路大致分三步

1、先创建基本的信息:文案内容,像素尺寸,字体类型,图片路径;
2、创建小图来填充内容,在创建大图状态填充好的小图内容;
3、循环遍历图片的内个像素点,把文字黏贴上去。

我们来看看巳月的女神照片:

程序员最浪漫的表白方式,将情书写在她的照片里,Python简直太厉害啦~

实现代码

from  PIL import Image,ImageDraw,ImageFont

#像素放大尺寸
img_king_size = 20

#输入内容
text = '这是巳月的女神'
#设置字体
font = ImageFont.truetype('simsun.ttc',img_king_size)

#图片路径
img_path = './king.jpg'

#打开图片
img = Image.open(img_path)
img_w,img_h = img.size

#创建一个小图,用于填充字体
img_child = Image.new("RGB", (img_king_size, img_king_size))
#创建一个大图,状态填充好的小图字体
img_ans = Image.new("RGB",(img_w * img_king_size,img_h * img_king_size))

#获取单个文字的宽和高
text_w,text_h = font.getsize('')
#文字水平居中
offset_x = (img_king_size - text_w) >> 1
#文字垂直居中
offset_y = (img_king_size - text_h) >> 1

char_index = 0
#小图用于绘制文字
draw = ImageDraw.Draw(img_child)

#循环遍历原图的每一个像素点
for x in range(img_w):
    for y in range(img_h):
        #绘制背景,让图片更好看
        draw.rectangle((0,0,img_king_size,img_king_size),fill = 'lightgray')
        #用(x,y)处的像素点的色值进行绘制字体
        draw.text((offset_x,offset_y),text[char_index],font = font,fill = img.getpixel((x,y)))
        img_ans.paste(img_child,(x * img_king_size,y * img_king_size))
        char_index = (char_index + 1) % len(text)

img_ans.save('king-letter.jpg')

 

我们看下效果图

程序员最浪漫的表白方式,将情书写在她的照片里,Python简直太厉害啦~
生成的图片超过C站上传最大限制,所以不能上传原图,只能截个图看看效果了:

程序员最浪漫的表白方式,将情书写在她的照片里,Python简直太厉害啦~
放大版的,还可以放大,我就不放到最大了。

我这里显示的字是竖的,因为我的图片是长比宽大,改成横版照片的话,字就是横的了。

程序员最浪漫的表白方式,将情书写在她的照片里,Python简直太厉害啦~
这要是看不清楚的话,大家可以自己去试试,放到最大。

今天的分享到这里就差不多结束了,最后给大家分享一些Python视频教程,希望对各位有所帮助:

不经一番寒彻骨,哪得梅花扑鼻香;不经一番刻苦努力,哪得想要的结果;要想脱颖而出芬芳四溢,就要比别人更加努力!奥利给!

程序员最浪漫的表白方式,将情书写在她的照片里,Python简直太厉害啦~

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:程序员最浪漫的表白方式,将情书写在她的照片里,Python简直太厉害啦~ - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • Python:如何只用十几行代码写一个程序?

    Python可以做的事情真的太多了,常见的网站开发,软件开发,爬虫,数据分析,人工智能,机器学习,量化投资,自动化办公,自动化运维,游戏开发,脚本制作,树莓派等等等等~ 今天咱们就来试试用Python做一个简单的程序,只需要十几行代码即可,灰常简单~     知识点 PyQt6 sys   代码展示 #引入类 # 更多好玩的代码 都放在这个群啦 279199…

    2023年4月2日
    00
  • 利用Python快速实现一个线程池,非常简单

    雷猴啊,兄弟们!今天来展示一下如何用Python快速实现一个线程池。   一、序言 当有多个 IO 密集型的任务要被处理时,我们自然而然会想到多线程。但如果任务非常多,我们不可能每一个任务都启动一个线程去处理,这个时候最好的办法就是实现一个线程池,至于池子里面的线程数量可以根据业务场景进行设置。 比如我们实现一个有 10 个线程的线程池,这样可以并发地处理 …

    Python开发 2023年4月2日
    00
  • 趁这个软件还没倒闭,我连夜用Python下载了所有壁纸…

    最近啊,有些人总是喜欢乱点一些七七八八的网站,没错,就是那个巳月,点完了又喊我爬,自己不爬! 就是这些,眼熟吗,反正我一个不认识!!一开始我是严词拒绝的!我是那样的人吗?要不是他请我喝奶茶让我来,我才不瞎搞呢!     软件环境 Python 3.8 解释器 Pycharm 编辑器 模块使用 requests 数据请求模块 re 正则 代码展示 代码仅做展示…

    Python开发 2023年4月2日
    00
  • Python批量爬取大众点评数据

    众所周知,某点评是一直有JS加密的,所以关于它的外包一直都很贵,有些公司甚至用来面试,可见他的难度。 但是吧,最近他好像没有加密了,这~ 不值钱了啊! 那当时就忍不住了,就得用Python开始整活了!     话不多说,让我们上代码! 全部代码 今天就没那么多步骤了,直接上代码! import requests import parsel url = ‘ht…

    2023年4月2日
    00
  • Python丨听说这个地方的漫画不错,只用40行代码,给它全部爬下来

    前因后果 公司新来的小姐姐,超级喜欢看漫画,天天给我介绍,好烦~ 现在是2022年9月15日16点30,于是我决定, 五点下班前写个代码把她说的漫画全部爬下来,应付一下~ 再发篇文章揭露她的罪恶,嘿嘿~ 准备事项 环境使用 Python 3.8 Pycharm 2021.2版本   模块使用 import requests >>> # 数据…

    Python开发 2023年4月2日
    00
  • Python之字典删除元素(6种方式)

    文中代码 smart_girl = {“name”:”yuan wai”, “age”: 25,”address”:”Beijing”}   第一种方式:pop()方法 注意:找不到对应的key,pop方法会抛出异常KeyError smart_girl.pop(“name”) #返回值是value # Python学习交流裙 708525271   第二种…

    Python开发 2023年3月31日
    00
  • 重温Python基础——数

    哈喽,兄弟们,本文带大家来复习一下Python基础中的数。 在编程中,经常会使用到数。在一些计算题中,或者其他的可视化数据等。Python能够根据不同用法处理它们 1、整数 在Python中可对整数执行加减乘除运算(+ – * /),使用两个乘号表示乘方(**) a=3 b=4 print(a+b) print(a-b) print(a*b) print(a…

    Python开发 2023年4月2日
    00
  • 用python将网上的文章转存为PDF文档,保存电脑上慢慢看

    我们有时候看到一篇好的文章,想去保存下来,传统方式一般是收藏书签、复制粘贴到文档或者直接复制链接保存,但这样一次两次还好,数量多了,比较麻烦不说,还可能不好找~ 这个时候,Python的作用就来了,直接抓下来导出为PDF,直接把整个网站的内容都导下来都行~ 话不多说,我们直接上代码! import requests import parsel import …

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部