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

简介: 今天是七夕节,中国传统的情人节。可预期到的是,估计有很多年轻的情侣们,已经为这个节日提前准备好久了吧?烂大街的套路无非就是送花、吃饭、电影院,看完电影找酒店。作为一个引爆消费的特别日子,程序猿们如何过节呢?今天公司博客举行了一个投票活动,七夕怎么过!结果多数人的投票都是闭门思过、一觉而过,难怪你们找不到女朋友啊!今天我就教你们如何不花钱,还能为心仪的她送去特别的礼物!这个骚操作不知道诱惑了多少人去学python,其实怎么说,如果真的代码写成那个样子,下班走夜路最好自带三级头,不然很容易挨闷棍。代码如下:

又是一年七夕时


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


一行代码画爱心


这个骚操作不知道诱惑了多少人去学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简单做了一个心形的图,大家先来看看效果。


网络异常,图片无法展示
|

html绘制爱心

因为是边想边做的格子,所以拿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 = 0
        for 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 += 1
            if col == SideLength:
                col = 0
                row += 1
            if row == col == SideLength:
                break
        heart_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 True
    elif row == 1 and col not in [3, 4, 5]:
        return True
    elif row == 2 and col != 4:
        return True
    elif row in [3, 4]:
        return True
    elif row >= 5 and (row - 5) < col < (13 - row):
        return True


最终效果如下:


网络异常,图片无法展示
|

心形照片墙

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

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


打包为exe文件


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


网络异常,图片无法展示
|

心形照片墙exe


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


The End


OK,今天的内容就到这里


相关文章
|
3天前
|
Python
Python漂浮爱心完整代码
Python漂浮爱心完整代码
51 0
|
3天前
|
Python
Python跳动的爱心完整代码
Python跳动的爱心完整代码
667 0
|
3天前
|
前端开发 Python
python制作七夕音乐贺卡
本篇博文是一个关于制作音乐贺卡的教程。自己在去年的在七夕节期间创作了一个代码项目,允许用户自定义背景、音乐和祝福语,生成一个包含音乐的HTML贺卡。教程分为三个部分:前言、制作流程和具体代码。前言提到,由于找不到现成的音乐贺卡模板,我决定自己动手,制作的贺卡适用于各种节日。制作流程包括两个步骤,一是通过提供的Python代码工具选择背景图片、音乐文件和输入祝福语,生成HTML贺卡;二是提供了一个预打包的exe文件,用户可以直接运行并按照提示操作。最后,文章分享了生成贺卡的具体Python代码,并以一句鼓励的话语结尾,强调了努力和选择的重要性。
|
3天前
|
Python Perl
情人节到了,写一份爱心程序(python)
情人节到了,写一份爱心程序(python)
35 0
|
3天前
|
存储 Python
【python】——超市管理系统和用turtle动态画图(爱心和魔幻曲线)
【python】——超市管理系统和用turtle动态画图(爱心和魔幻曲线)
45 0
【python】——超市管理系统和用turtle动态画图(爱心和魔幻曲线)
|
3天前
|
小程序 Python
python画一颗爱心
python画一颗爱心
31 0
|
3天前
|
Python
Python爱心光波完整代码
Python爱心光波完整代码
46 0
|
3天前
|
Python
【python】桌面表白代码-画爱心+桌面生成文本文件
【python】桌面表白代码-画爱心+桌面生成文本文件
40 0
|
5月前
|
Python
Python如何17行代码画一个爱心
Python如何17行代码画一个爱心
61 0
|
6月前
|
Python
今天给大家带来Python炫酷爱心代码
今天给大家带来Python炫酷爱心代码
102 0