用 Python 生成一张有“内涵”的图片

article/2025/9/16 3:00:15

前段时间,在微博上刷到了一条推荐。内容是这样的

出于好奇,我点开了,放大再放大,emmm,有点意思吖…

这个效果可以取个名字,叫做“画里有话”。 对于想表白又腼腆的人来说,这招还真是个好办法:既传达了自己想说的话,又不至于太突兀。

作为一名程序员,这不禁激起了我的极客之心!立马自己动手做了一个同款工具。

今天就来教大家这个套路:

如何使用 Python 来做出来这样 有点浪漫,又有点极客的“内涵”图。

当然,能不能靠它得到心仪对象的青睐,就要靠你(命)了。(๑•́₃ •̀๑)

那么要怎么做呢?

我们先找一张女神的高清图片(尽量分辨率高点的吧,效果会好点)。这里以一张高圆圆的照片来做一下演示,原图是这样的(分辨率是:2000*1328)。

使用我写好的脚本运行后,就生成了这样一张图,请你点击,放大再放大。(惊喜?

然后将这张图片发给你的女神,具体话术你自己想咯

好吧,相比女神来说,你可能更在意这是如何实现的

其实原理很简单,代码也还不到 20 行。

首先,来讲讲原理。

事实上,每一张图片都是由一个一个的像素点所组成的。而每个像素点,都有自己的颜色, 其颜色可以用一个数组来表示:(a,b,c),其中每位数的取值范围都是 0-255

比如(0,0,0)代表黑色,(255,255,255)代表白色。

当像素点足够多的时候,这张照片就是我们所说的高清照片。

而如果当像素点太少,我们的肉眼就能感知到明显的锯齿感。

用 Excel 画了个图,每一方格代表一个像素,其中若我的字体的大小设置 5(非字号5,而是每个字占用5个像素),效果大概就是如下这样子。

我只要每个像素取出一个像素值,并使用这个像素做为该字的颜色即可,在像素量够多的情况下,从远处看,是能看到我们原来图像的轮廓的。

有了思路,就可以开始我们的代码。

首先,我们需要用到 PIL库,使用其中的 PIL.Image 读取图像,并使用 load 方法获取到每一个像素值。

img_raw = Image.open(img_path)

img_array = img_raw.load

然后新建一张画布,并选好你要使用的字体和字体大小(这里要确保路径下的字体文件是存在的)。

img_new = Image.new( "RGB", img_raw.size, ( 0, 0, 0))

draw = ImageDraw.Draw(img_new)

font = ImageFont.truetype( 'C:/Windows/fonts/Dengl.ttf', font_size)

由于需要不断循环 “我喜欢你!”,这五个字符。所以这里可以while循环 yield 来实现一个生成器。

defcharacter_generator(text):

whileTrue:

fori inrange(len(text)):

yieldtext[i]

最后,要给这些字加上相应的颜色,写入新创建的画布中。

fory inrange( 0, img_raw.size[ 1], font_size):

forx inrange( 0, img_raw.size[ 0], font_size):

draw.text((x, y), next(ch_gen), font=font, fill=img_array[x, y], direction= None)

最后将成品保存

img_new.convert( 'RGB').save( "save.jpeg")

完整代码如下,供你参考

fromPIL importImage, ImageDraw, ImageFont

font_size = 7

text = "我喜欢你!"

img_path = "gyy.jpeg"

img_raw = Image.open(img_path)

img_array = img_raw.load

img_new = Image.new( "RGB", img_raw.size, ( 0, 0, 0))

draw = ImageDraw.Draw(img_new)

font = ImageFont.truetype( 'C:/Windows/fonts/Dengl.ttf', font_size)

defcharacter_generator(text):

whileTrue:

fori inrange(len(text)):

yieldtext[i]

ch_gen = character_generator(text)

fory inrange( 0, img_raw.size[ 1], font_size):

forx inrange( 0, img_raw.size[ 0], font_size):

draw.text((x, y), next(ch_gen), font=font, fill=img_array[x, y], direction= None)

img_new.convert( 'RGB').save( "save.jpeg")

如果你想在自己的电脑上运行,只要复制上面这段代码,保存为 python 文件(例如 draw.py),在代码编辑器或者命令行中运行即可。

需要注意的几点是:

1. 要安装 PIL 库。需要注意的是,这个模块名叫做 PIL,但现在已经不更新了,我们需要用另一个替代库:pillow。可以在命令行通过 pip install pillow 安装。

2. 将你的原始图片跟代码放在同一个目录,并修改文件中的图像文件名。

3. 字体可以自行更改,但要 确保是中文字体,并且字体文件的路径正确。

最后再多上几张效果图吧(对,我是海贼迷)。

1. 路飞

2. 索隆

3. 山治

作者:写代码的明哥

来源:Python编程时光

用Python写一份独特的元宵节祝福


http://www.hkcw.cn/article/EfLRkwRLeN.shtml

相关文章

原创世界上年龄最小最美的5位模特排行榜,14岁的她不幸离世

都说国外盛产女子,并且每个人都特别出色,但是不光是国外有出色的人哦,在世界各地也有很多特别出色的人,例如就有很多年龄又小但是很漂亮的模特,那他们都是谁呢?在世界上最小最美的5位模特都有哪些出色的地方呢? 年龄最小最美的5位模特 5、澳大利亚模特——麦迪逊加布里埃…

触目惊心!电梯拖行、脏鞋踩脸、精神恐吓,8100万中国女性正遭遇家暴,设计师拿起武器向家暴说“不”

各位船员, “蒋劲夫家暴” “宇芽被家暴” “李阳妻子原谅家暴” “国际反家暴日” 最近家暴频频出现在观众视野 人们恍然发现 原来身边还有这么多恶行 正在悄然发生(网红宇芽反家暴视频) 家暴,只有0次和一万次的区别 据调查显示,全国2.7亿家庭中 有30%的女性遭遇家暴这意…

手相篇-断掌对男女运势的影响!

断掌,是智慧线 和感情线相交,从手掌 的一端至另一端,成一直线横越的相,成为真断掌。感情线与智慧线 合二为一,但有一些线纹看似一条,实际上是两条线相而成,此为之假性断掌。如对手纹学认识不深者,容易看错而带来判断错误。断掌不长,仅到中指 如果断掌纹正好到中指或者…

一生获20多个健美冠军,比施瓦辛格强壮,看完12张图就明白了

说起健美的肌肉来,欧美男子比东方男子先天就块头大,再经过后天的努力训练,一身肌肉让人看起来十分钦慕,健美也早已列入比赛项目,健身爱好者可以在舞台上和世界各国的健美男子一较高下,完美的线条和油亮的皮肤,让很多观众为之尖叫倾倒。美国著名影星施瓦辛格的肌肉已经非…

画面曝光!美国会内对峙画面:议员逃难

当地时间1月6日,特朗普支持者冲击美国国会大厦并与警察发生冲突,甚至发生武装对峙一幕。据社交媒体上一名摄影记者称,当示威人群冲过时,一名警察被推到墙上,因恐惧而颤抖。展开全文美国国会大厦内的视频画面显示,众议院会议厅内的议员正用柜子挡住门,有人还掏出了枪。据…

章泽天奶茶妹妹走红 与刘强东恋爱过程曝光

章泽天,1993年11月18日出生于江苏南京,网络红人。2009年因一张手捧奶茶的照片走红网络,被称为“奶茶妹妹”。2011年,章泽天就读清华大学。2014年4月14日,章泽天与刘强东的恋情被媒体曝光,引起网友广泛关注。2009年12月29日,猫扑论坛一位自称“笔袋男”的网友发帖“哥散尽全部家…

Lennart Richter:187的金发碧眼麻豆,每张图都能给男票当头像

每次写欧美男模都很崩溃,因为他们不跟明星一样,会上各种综艺、有各种电视剧,他们仅存在于秀场里。 所以,资料不是太多,最多的就是各种帅照。 但是,怎么办,橘子君遇到一个很迷人的欧美小哥哥,还是想跟你们分享。 他的名字叫Lennart Richter,喏,迷人的小哥哥长这样↓是…

原创李小璐直播间遭遇贾乃亮粉丝的质问,问她为什么要背叛贾乃亮

我以为李小璐的首次公开直播将圆满完成,但没有人认为她受到了太多网民的质疑,甚至有很多人进入她的直播室,要求她发表公开声明。 。李小璐在客厅里受到讯问,网友们没有露面,问她为什么出卖贾乃良! 实际上,李晓璐已经事先做好了一切准备,她已经透露了现场直播应显示的内…

舟山载16人渔船失联找到两具遗体,官方称已出动直升机

新京报讯(记者 刘浩南 李一凡 俞金旻)4月12日晚,一艘渔船在东海海域失联,初步核实船上有16人。今日(4月13日)上午,新京报记者从舟山市海洋与渔业局获悉,搜救人员发现两名落水人员遗体,但尚未找到失联船只。舟山市海洋与渔业局信息中心值班室一名工作人员表示,初步分析…

马蜂窝被约谈,风波背后的内容变现迷途

马蜂窝又捅娄子了! 2019年4月3日,工信部网站发布了马蜂窝(北京蚂蜂窝网络科技有限公司)被三部门约谈的消息,对其网站和移动应用商店违反《互联网信息服务管理办法》规定及违反“九不准”内容没有尽到审查义务并立即停止传输一事进行严厉批评,提出立即整改要求。 《整改通…

原创有种“整容”叫《花千骨》中的绿鞘,剧中嫌她丑,卸妆后美成女神

相信很多人都有印象比较深刻的电视剧,而小编一直都非常喜欢看《花千骨》这部仙侠古装剧。虽然已经播出很长时间了,但对剧中的很多人物都印象深刻,今天要和大家聊的就是在剧中饰演绿鞘的这个角色。其实扮演绿鞘的这位演员,真名叫做李程,她是毕业于解放军艺术学院。虽然在《…

三星、SK海力士大动作!曝明年增加半导体设备投资

2023-12-21 10:42:04 作者:姚立伟 根据韩媒ETNews的最新报道,三星和SK海力士都计划在2024年增加半导体设备投资。三星计划投资约27万亿韩元(约合人民币1482.3亿元),比其2023年的投资预算增加了25%。而SK海力士则计划投资约5.3万亿韩元(约合人民币290.97亿元),比其今年…

火舞邪恶漫画集恶魔之舞探索人性深处的黑暗面

: 在阅读《火舞邪恶漫画集:恶魔之舞》时,我被书中那些扭曲变形的人物和诡异的场景所吸引。这些形象仿佛从地狱中涌出,展现了作者内心深处的恐惧和扭曲。他们的眼神充满了敌意和憎恨,似乎随时都会向我们扑来,将我们吞噬。 书中的角色,无论是畸形怪胎还是扭曲的人类,都让我…

小铁出海计划?开卷!

身处繁华都市,是否感受到无人经济时代的浩瀚浪潮?当前国际市场环境日新月异,无人经济趋势日益显著,自助台球发展态势正猛。今小铁台球欲挥戈海外,扬名世界,一展行业之雄风。 小铁台球创始人陈孝钦 11月28日,小铁台球创始人陈孝钦受邀参加中泰企业圆桌会议,与数位顶级科…

苹果惊现大量色情App!逼哩逼哩竟成小视频网站?

近日,一则关于苹果应用商店内出现大量色情App的消息引起了广泛关注。据悉,一款看似普通的"答题类小游戏"实际上却是一个隐藏着大量不雅内容的平台。这一事件不仅让人们对苹果公司的监管能力产生了质疑,也让我们不得不重新审视这些看似无害的应用背后可能存在的隐患…

原创周深曾和父母一年只通一次电话!从独立到学会沟通,周深长大了

第二季《令人心动的offer》迎来了大结局。 李晋晔王骁詹秋怡拿到了offer,正式加入了君合。 与此同时节目又再次谈到当代年轻人与父母的沟通问题。 对于年轻人来说,往往都对父母“报喜不报忧”,交流也是越来越少,隔阂不断增加。 而提到这时,周深深有感触。周深自小就开始了…

常用的7种颜色空间介绍

现在市面上有很多款色差仪,而这些色差仪常常声称自己有多种颜色空间和色差仪公式,适合多个行业的应用。真相真的是这样吗?那么常见的颜色空间和色差公式都有哪些呢?今天我们就带大家详细的了解一下。 在色差仪行业最长应用的颜色空间有7种,分别是CIE Lab、Luv、LCh、Yxy、…

原创哎,韩综《Running Man》又出事了!

导语:自开播以来,韩综《Running Man》凭借有趣的游戏和新奇的人设,成为亚洲最受欢迎的节目之一。和其他节目不同,《Running Man》的固定成员们几乎不惹事,反而制作组常常出纰漏。这不,韩综《Running Man》又出事了! 韩综《Running Man》 01、领土主权不分,《Running Ma…

原创2021最火最走心的一句话语录,太精辟了,看了一遍还想看!

一、走慢一点,坐下来陪陪自己,让心静下来,做点自己真正喜欢的事,这才是真正的生活。心不静,幸福就来不了;气不和,生命就鲜活不起来。 二、最合适的两个人,不一定是一开始就一拍即合,而是愿意在未来漫长的岁月里,为了彼此而变成更好的两个人。 三、当你毅然的抛开所有…

原创一口气读完《巡回检察组》原著,拨云见日,6人结局令人长夜难眠

近日,由于和伟、韩雪、韩童生、冯雷、成泰燊主演的电视剧《巡回检察组》持续热播,原本已经被网友打入烂剧行列的剧集,播出十几集之后,口碑正在逐渐回升。 不少前期弃剧的观众,又被剧情吸引,重新捡起了这部剧,小编也是其中一位。 “九三零”案件,黄四海真相,米振东疑团…