十行Python3代码实现把情书写到图片中

目录
  • 1、引言
  • 2、Pillow
    • 2.1 Pillow 安装
    • 2.2 Pillow 介绍
    • 2.3 实战

1、引言

小屌丝:鱼哥,你说这就快到圣诞节了,我应该送女神什么礼物呢?

小鱼:你的女神又不缺什么礼物,倒不如送点惊喜?

小屌丝:送什么惊喜呢?

小鱼:不如,送一份情书?

小屌丝:鱼哥,你的意思,让我领着我女神去KTV里面唱歌?

小鱼:我没有那么肤浅,此情书,不是张学友的那首《情书》,也不是吉克隽逸的那首《三行情书》。

小屌丝:那是什么情书呢? 难道要我去复印社打印一份??

小鱼:也没那么low,

小屌丝:那你这是为难我了,

小鱼:如果把你的情书写在你女神的照片上,并打印出来送给她,她会不会感动??

小屌丝:我去~~ 情书还可以这么玩?

小鱼:那必须的。

小屌丝:鱼哥,那赶紧整啊,我已经…。

2、Pillow

今天我们来说的这个神器,就是Pillow。

利用的原理就是:把情书写在像素中。

把图片无限放大,就会看到一个小小的方格,这就是像素。

也就是说,图片是由无数个像素组成。

2.1 Pillow 安装

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

老规矩, pip 方式安装:

pip install Pillow

其他方式安装:

Python3自动安装第三方库,跟pip说再见

Python:一行代码,导入Python所有库

2.2 Pillow 介绍

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

2.2.1 新建及保存图片

# -*- coding:utf-8 -*-
# @Time   : 2021-12-17
# @Author : carl_DJ

from PIL import Image

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

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

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

我们打开图片,看看是啥样子的。

没错,就是这张图片。

2.2.2 重新绘制图片

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

# -*- coding:utf-8 -*-
# @Time   : 2021-12-17
# @Author : carl_DJ

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')

运行代码后,我们打开生成的图片

奈斯,说明符合我们的预期。

2.2.3 图片合并

我们把两个图片合并。

# -*- coding:utf-8 -*-
# @Time   : 2021-12-17
# @Author : carl_DJ

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')

运行代码,我们看下效果

完美。

2.3 实战

简单说一下我们的思路,大致分三步

1、先创建基本的信息:文案内容,像素尺寸,字体类型,图片路径;

2、创建小图来填充内容,在创建大图状态填充好的小图内容;

3、循环遍历图片的内个像素点,把文字黏贴上去。

我们先看下唐三的女神图片:

我们看下代码实现:

# -*- coding:utf-8 -*-
# @Time   : 2021-12-17
# @Author : carl_DJ

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')

我们看下效果图

由于生成图片的大小,超过上传最大限制,所以,不能上传原图,

我就截取一下,看看效果:

我再给放大N倍,

都说看不清效果,那我只能放大N倍。

以上就是十行Python3代码实现把情书写到图片中的详细内容,更多关于Python情书写到图片的资料请关注我们其它相关文章!

(0)

相关推荐

  • 如何用Python中19行代码把照片写入到Excel中

    目录 1.前言 2.代码实战 2.1思路 2.2文件准备 2.3实战 2.4色值转换 2.5图片转换 2.6代码整合 2.7运行结果 3.总结 1.前言 这里说的,不是截取一张图片,粘贴到excel:而是通过像素写入到excel中,下面来看看具体的实现过程吧 2.代码实战 2.1 思路 我们今天要分享的,是把图片写入到excel中, 我们来捋一下思路: 准备源图片,目标excel: 通过Pillow 来读图片的取像素(RGB): 通过openpyxl 向excel cell内填充十六进制色值:

  • python实现心型照片墙效果

    今天分享如何用python制作好看的心型照片墙,供大家参考,具体内容如下 效果 我们先来看下效果图,了解我们接下来要做的事情,我的效果图如下: 感觉如何?如果还满意,看完幸苦点个赞,因为看完你也可以做出来!同时也是对我的一种反馈 思路 上代码之前,我们先来理清下思路,只有过程理清楚了,才能得到自己的想要的结果 制作这个我觉得最难的地方就在于每个图片的位置该怎么计算,才能凑成一个心型.但是没关系,我们不去计算,毕竟我数学很差,我采用土办法,直接把它位置写死,虽然稍微有点麻烦,但是灵活~ 大家都知道

  • 通过Python把学姐照片做成拼图游戏

    目录 前言 先上效果 配置环境 配置文件 引入资源 主函数代码 游戏运行方法 前言 事情是这样的 马上就快到毕业季了,大四的学姐们快要离校了 你心中那个没有说出口的学姐,你还记得吗 跟着博主,用pygame给你心中那个学姐做一款专属于她的拼图游戏 万一有什么意外收获呢? 先上效果 我用隔壁诗诗学姐的照片,给她做了一个拼图游戏 结果,我自己的拼不出来了 配置环境 安装pygame模块 #pip install pygame PS C:\Users\lex> pip install pygame L

  • 教你怎么用Python生成九宫格照片

    一.朋友圈九宫格效果图 二.图片基本操作 打开要处理的图片 判断打开的图片是否为正方形 如果是正方形,就进行九等分,如果不是正方形,先用白色填充为正方形,再进行九等分 保存处理完的图片 第一步,先我安装一下Pillow模块 pip install pillow 1 .处理图片 在Pillow中,用Image子模块.Image.open函数会返回一个图片对象,代码如下: from PIL import Image # 读取图片 img = Image.open('lbxx.jpg') Pillow

  • 十行Python3代码实现把情书写到图片中

    目录 1.引言 2.Pillow 2.1 Pillow 安装 2.2 Pillow 介绍 2.3 实战 1.引言 小屌丝:鱼哥,你说这就快到圣诞节了,我应该送女神什么礼物呢? 小鱼:你的女神又不缺什么礼物,倒不如送点惊喜? 小屌丝:送什么惊喜呢? 小鱼:不如,送一份情书? 小屌丝:鱼哥,你的意思,让我领着我女神去KTV里面唱歌? 小鱼:我没有那么肤浅,此情书,不是张学友的那首<情书>,也不是吉克隽逸的那首<三行情书>. 小屌丝:那是什么情书呢? 难道要我去复印社打印一份?? 小鱼:

  • 十行Python3代码实现去除pdf文件水印

    目录 1.引言 2.代码实战 2.1去除原理 2.2代码解析 2.3代码整合 3.总结 1.引言 小屌丝:鱼哥,最近有点不像话了. 小鱼:嗯?? 啥个意思嘛~ 小屌丝:一周了,没分享小知识了. 小鱼:就因为这个?? 小屌丝:那是,我这么爱学习的人. 小鱼:怕是你有什么事情解决不了,想到我了吧? 小屌丝:呵 ~ 笑话 ~ 我 能有…什…么…事情… 小鱼:说吧, 小屌丝:这可是你让我说的,我可没主动要问的! 小鱼:说吧,咋还磨磨唧唧了呢 小屌丝:我在某站下载的pfd文档,有水印,如何去掉啊? 小鱼:

  • 四行Python3代码实现图片添加美颜效果

    目录 1.引言 2.代码实战 2.1 模块安装 2.2 读取图像 2.3 增强亮度 2.4 增强色度 2.5 增强对比度 2.6 增强锐度 1.引言 小屌丝:鱼哥,鱼哥,help… 小鱼:呼吸声越来越弱,你这是劳累过度?? 小屌丝:拉倒吧,我这是激动的 小鱼:什么大风大浪没见过,竟然能让你这么激动?? 小屌丝:刚刚一妹子加我WeChat,问我要照片. 小鱼:那你就发给她呗 小屌丝:鱼哥,我要是有你这一半的颜(dan)值(shi),我都不来让你帮忙. 小鱼:你这么说,我会不好意思的,干啥这么直接的

  • Python3.5文件读与写操作经典实例详解

    本文实例讲述了Python3.5文件读与写操作.分享给大家供大家参考,具体如下: 1.文件操作的基本流程: (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 2.基本操作举例: 现有一个命名为song.txt的文件,里面存放最喜爱的英文歌,内容如下: take me to your heart hiding from the rain and snow 藏身于雨雪之中 trying to forget but i won't let go 努力忘记,但我

  • 一行Python3代码实现解析地址信息

    目录 1.引言 2.代码示例 2.1 简介 2.2 安装 2.3 实战 1.引言 小屌丝:鱼哥,你说咱们发快递时填写的地址信息,到后台怎么能看清楚写的对不对呢? 小鱼:这种事情还要问? 你没在电商行业混过?? 小屌丝:那不都是用java实现的嘛,我想问Python如何实现呢? 小鱼:这,很简答的.一行代码的事. 小屌丝:不应该啊,平时你都是推三阻四的,今天咋这样痛快? 小鱼:今天心情好. 小屌丝:鱼哥,你对我就不能坦诚一点吗? 小鱼:你想不想学? 小屌丝:必须的啊, 小鱼那我就开始. 2.代码示

  • filter使用python3代码进行迭代元素的实例详解

    我们通常说使用函数对列表进行筛选,有多少小伙伴能够理解筛选的原理呢? 今天小编为大家带来了新朋友filter函数,相较于以往能实现筛选功能的函数来说是复杂的,这也算是对于一些有难度函数学习的考验.我们会着重于探讨filter函数筛选后的返回值,对于返回值的迭代进行一些原理的分析. filter用于过滤筛选可迭代对象中的元素,如果符合条件则返回对应的元素序列(类型为filter),filter接受两个参数,一个是函数用于筛选元素,返回值为True或Flase,另一个是可迭代对象. filter用法

  • python3代码输出嵌套式对象实例详解

    我们都知道如果想让电脑运行更多的程序,就要增加它的配置才能带动.在之前的学习中,我们已经对函数的打印print有所了解,但是遇到更加复杂的对象,比如嵌套式的print的打印功能就不够用了. 有的小伙伴已经在寻找其他的函数,其实针对于这个问题,我们使用更高级的pprint就可以解决了,接下来用代码输出嵌套式对象给大家进行模拟. Python的默认print函数可以满足日常的输出任务,但如果要打印更大的.嵌套式的对象,那么使用默认的print函数打印出来的内容会很丑陋. 这个时候我们就需要pprin

  • 十行Python代码制作一个视频倒放神器

    目录 导语 正文 源码如下 效果展示 总结 补充 导语 大家好,我是栗子同学! 今天给大家分享一个好玩的东西 让时光倒流——当当当,其实就是让视频倒放而已 正常的视频如下 倒放视频如下 效果很赞吧,等你学会了这个,你才会发现,抖音上那些杯子里的水倒流,倒着跑步等看似很炫酷很神秘的视频,其实就是一键倒放而已! 那么,今天小编就来探索Python代码如何实现这个倒放的功能叭~ 正文 这些搞笑的gif跟小视频都是将正常的流畅通过倒放产生的效果啦 其实制作起来却非常简单,原理就是将gif图片拆分出来每一

  • 十行Python代码实现文字识别功能

    目录 1.环境和配置要求 百度接口 2.具体实现步骤 获取截图 调用Baidu aip识别并打印文字 调用打包程序生成专属识别文字小程序 今天给大家分享的主题是用百度的接口实现图片的文字识别. 1.环境和配置要求 整体是用Python实现,所需要使用的第三方库包括aip.PIL.keyboard.pyinstaller,如未安装,可在CMD中使用pip install Baidu-AIP/pillow/keyboard/pyinstaller指令安装. 百度接口 打开网址,如未注册请先注册,然后

  • Python代码中引用已经写好的模块、方法的两种方式

    平时写的一些 Python 的代码,需要在其他模块里面复用.最粗狂的方法就是直接 copy 过去. 但这种方式太麻烦,copy 一堆代码,导致代码量也很多.copy 的也不爽. 下面就介绍两种方式,可以简洁明了地调用自己在其他模块写的代码. 个人推荐第二种方式. 方式一: 手动使用 sys 调用自己写的 Python 模块.方法 我的代码存在 E:\\PycharmProjects\\111 目录下.需要调用的代码是 mypy 下 my007.py 里的 funA() 方法. my007.py

随机推荐