这个七夕节,用Python为女友绘制一张爱心照片墙吧!

news/2024/11/14 18:33:32/

欢迎添加华为云小助手微信(微信号:HWCloud002HWCloud003),输入关键字“加群”,加入华为云线上技术讨论群;输入关键字“最新活动”,获取华为云最新特惠促销。华为云诸多技术大咖、特惠活动等你来撩

 

又是一年七夕时

今天是七夕节,中国传统的情人节。可预期到的是,估计有很多年轻的情侣们,已经为这个节日提前准备好久了吧?烂大街的套路无非就是送花、吃饭、电影院,看完电影找酒店。作为一个引爆消费的特别日子,程序猿们如何过节呢?今天公司博客举行了一个投票活动,七夕怎么过!结果多数人的投票都是闭门思过、一觉而过,难怪你们找不到女朋友啊!今天我就教你们如何不花钱,还能为心仪的她送去特别的礼物!

一行代码画爱心

这个骚操作不知道诱惑了多少人去学python,其实怎么说,如果真的代码写成那个样子,下班走夜路最好自带三级头,不然很容易挨闷棍。代码如下:
print('\n'.join([''.join([('LovePython'[(x-y)%10]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)]))
效果:

技术是不错,但是如果你把这个当做礼物送给女朋友,除非你是不想见到明天的太阳了…今天要交大家更犀利的骚操作!

美图秀秀

现在不说妹子的手机有没有美图秀秀之类的美化软件了,连很多爷们儿的手机都有这些软件你敢信?

美图秀秀有一个拼图的功能,你可以手动选择心形拼图,然后把你喜欢的图片一张一张的贴到对应的方框内,最终做出一个心形的图片…
那么今天,我就教大家使用Python,绘制一个心形的女友照片墙!

心形布局图

美图秀秀上,存在了大小图的分类,我们为了降低难度,都是用等比例的图片,进行心形绘图。首先我们需要先画出来一个心形的图片,然后按照小格子进行分类。
我拿html配合css简单做了一个心形的图,大家先来看看效果。

因为是边想边做的格子,所以拿ul标签一点一点拼出来的,没有使用js去动态生成…

怕前端大神嘲讽,就不贴代码了太占内容(文末会随python代码一起提供下载路径…)
这是一个9X9的div排列框体,我们只需要将红色的方框填充上女友的图片,即可完成心形照片墙的效果。你说自己没有女友?没关系啊,你给心仪的妹子做一个心形照片墙,说不定今天你就有了!当然你也可以为你的基友做一个,我这人很开明,不鼓励不排斥,哈哈…

代码分析

准备图片

首先你需要整理一些女友的图片,这个是大前提!我从微信找了12张媳妇儿的照片,先保存到一个文件夹内:

随机选填

这里有人要问了,数了一下上面红色的方格一共有52个,你只有12章图片,怎么做?照你这么说,如果你直接从相册取1000张图片,是不是还得给你画个花心大萝卜出来?
我们需要引入random模块,并且使用random.choice将图片的list进行动态选择并填充。这样就解决了大家图片数量不固定的问题,你可以放几千张选也可以只放一张!

图片合成

昨天写到的python图片转素描画中使用到了pillow库,今天我们一样用它就能实现!

    def mark_pictures(self):heart_image = Image.new('RGB', (128 * SideLength, 128 * SideLength))row = col = 0for side in range(SideLength * SideLength):if images_side_calc(col, row):img = Image.open(random.choice(self.image_list))img = img.resize((128, 128), Image.ANTIALIAS)else:img = Image.new("RGB", (128, 128), (255, 255, 255))heart_image.paste(img, (row * 128, col * 128))col += 1if col == SideLength:col = 0row += 1if row == col == SideLength:breakheart_image.save("heart_image.jpg")

我们先创建一个空的画布,然后规定每张图片的固定尺寸为128X128,然后我们按照红框的计算,动态填充图片或者白色的幕布。

至于如何计算心形,除了最后的三角形有规律可循,上面的几行,只能每行去单独判断了images_side_calc方法如下:

def images_side_calc(row, col):if row == 0 and col in [1, 2, 6, 7]:return Trueelif row == 1 and col not in [3, 4, 5]:return Trueelif row == 2 and col != 4:return Trueelif row in [3, 4]:return Trueelif row >= 5 and (row - 5) < col < (13 - row):return True

最终效果如下:

大家可以看到,由于我只使用了12张图片,所以会出现一些随机重复的图片,大家使用的话,可以多选择一些照片,效果会更好一些!

在这里,把这份七夕礼物,送给远在重庆姐姐家避暑的媳妇儿,祝你七夕快乐!

打包为exe文件

既然工具写好了,当然要方便那些没有python环境的人们使用啊,使用

既然工具写好了,当然要方便那些没有python环境的人们使用啊,使用pyinstaller打包工具,无需依赖python环境,双击exe输入图片存储地址,皆可完成心形照片墙的绘制:

当然,由于没有像昨天的素描画一样配置tkinter的GUI,只能在cmd下手动输入路径,完成照片墙的制作,如果大家喜欢可以照着昨天的内容,手写一个GUI界面。

The End

OK,今天的内容就到这里,如果觉得内容对你有所帮助,欢迎点击文章右下角的“在看”。
公众号回复照片墙,下载打包好的exe图片转素描话工具,一起玩玩吧….
期待你关注我的公众号清风Python,如果觉得不错,希望能动动手指转发给你身边的朋友们。

作者:清风Python


http://www.ppmy.cn/news/659855.html

相关文章

机器视觉丨环形光源原理及打光案例

首先&#xff1a;环形光源由高密度LED经结构优化设计阵列而成&#xff0c;性能稳定&#xff0c;亮度高&#xff0c;安装方便。以不同照射角度&#xff0c;不同颜色组合直接照射在被测物上&#xff0c;可避免照射阴影现象&#xff0c;突显成像特征&#xff0c;也可结合漫射板使用…

自己动手做的LED摄影灯

一直想买摄影灯&#xff0c;好的&#xff2c;&#xff25;&#xff24;摄影灯&#xff0c;都要二三千元一个&#xff0c;二只就要五六千了。有点心疼钱&#xff0c;据说明年公务员要大幅度减少收入。就萌生了自己动手做灯的想法。 回想起二十多前年做工人时&#xff0c;曾是一把…

【附教程】亲身体验AI绘画的艺术之旅——EP0

体验在线 AI 画图服务 Midjourney Midjourney 是一个由同名研究实验室开发的人工智能程序&#xff0c;可根据文本生成图像&#xff0c;于2022年7月12日进入公开测试阶段&#xff0c;用户可透过 Discord 的机器人指令进行操作。该研究实验室由 Leap Motion 的创办人大卫霍尔兹负…

机器视觉丨环形无影光源丨原理及打光案例

首先&#xff1a;环形无影光源的LED颗粒具有独特的结构阵列&#xff0c;LED光经过特殊的漫射导光板后&#xff0c;在光源中心正下方形成一片均匀的照明区域&#xff0c;并具有类似于圆顶无影灯照射效果&#xff0c;不同的工作高度能形成不同的光照环境&#xff0c;针对不同产品…

《一周学完光线追踪》学习 三 光线相机和背景

蒙特卡洛光线追踪技术系列 见 蒙特卡洛光线追踪技术 所有光线跟踪器都有一个光线类&#xff0c;以及计算沿光线看到的颜色。让我们把射线看作一个函数&#xff0c;p(t)At*B&#xff0c;这里p是3D中沿直线的3D位置&#xff0c;a是射线的原点&#xff0c;B是射线的方向。射线参数…

月球探测车-DIY

月球探测车-DIY 提示&#xff1a;内容为作者原创&#xff0c;转载请标明出处 概述 随着我国的航天事业蒸蒸日上&#xff0c;浩航星辰离我们不再那么遥远。你的内心是否也开始对探索外面未知的世界充满好奇。当勇气号、毅力号、天问一号、玉兔降落在遥远的地外星球时&#xff0…

arduino 警灯DIY教程

材料准备&#xff1a; ws2812B灯珠偶数个。 arduino开发板任意一个。 锡焊工具和导线若干。&#xff08;也可以直接买网上的ws2812灯条&#xff0c;贵了些但不用焊了。&#xff09; 具体步骤如下&#xff1a; 安装arduino IDE。CSDN教程很多且很详细&#xff0c;不再赘述。…

ESP8266-01实战三——月球灯

基于Unity UDP通信的esp8266-01月球灯 一、介绍二、准备2.1原理方案分析2.1.1外壳2.1.2灯2.1.3主控2.1.4上位机 三、制作3.1月球灯外壳3.2月球灯PCB3.3APP 四、BUG4.1AP模式看门狗复位4.2AP模式无法被PC连接 五、总结 一、介绍 先看看是个什么东西吧&#xff0c;这是一个3D打印…