七夕来袭!是时候展现专属于程序员的浪漫了!你打算怎么给心爱的人表达爱意?鲜花礼物?代码表白?还是创意DIY?或者…无论那种形式,快来秀我们一脸吧!
参与发布文章即可获得【话题达人】勋章,参与多个话题还可进行勋章升级喔!

浪漫,对于男人来说是无法解释的,不理解、不知道、难以揣测、难以衡量、难以捉摸,但是最最最简单的方式就是用长时间的陪伴来表达自己的爱意,那么本文用陪伴的各种经历照片拼成一些能些许表达爱意的浪漫礼物。
希望能对大家有所价值。
编码语言:Python3.x
编码环境:PyCharm Community Edition 2021.2
目录
库:
- pip3 config set global.index-url https://repo.huaweicloud.com/repository/pypi/simple
- pip3 config list
- pip3 install --upgrade pip
- pip3 install Image
这里第一项是修改镜像地址,华为的我在学校下载的快一些,第二个查看是否修改成功,第三个是将pip升级到最新版本,最后一个才是咱们需要用到的Image图片库。


对应的位置上一定需要有图片,否则会读取失败。
编码如下:
- from PIL import Image
- import os
-
- map = [
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1],
- [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
- [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1],
- [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1],
- [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
- [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
- ]
- count = 0
- for item in map:
- for item1 in item:
- if item1 == 0:
- count += 1
- print("需要图片:", count, "张")
- # 图片路径-自定义就行
- img_dir = r"D:/images/"
- # 获取img_dir下的所有文件,都是一个类型的图片
- imgs = os.listdir(img_dir)
- # 设置所有的图片的尺寸,别太大
- img_h = 192
- img_w = 192
- # 获取行数
- rows = len(map)
- # 获取列数
- columns = len(map[0])
- # 设定图片
- figure = Image.new("RGB", (img_w * columns, img_h * rows), "white")
- # 初始图片下标
- count = 0
- # 开始放置图片
- for i in range(len(map)):
- for j in range(len(map[i])):
- # 如果元素是不是1,就放图片
- if map[i][j] != 1:
- # 异常处理,防止有些图片无法读取
- try:
- # 使用Image.open("图片路径")方法获取图片对象
- image = Image.open(os.path.join(img_dir, imgs[count]))
- except:
- continue
- # resize((自定义宽,自定义高))用来改变图片的尺寸
- image = image.resize((img_w, img_h))
- # 将修改尺寸后的图片(image)粘贴(paste)到画布(figure)上
- # 第一个参数 是图片对象
- # 第二个参数是 图片在画布上的位置,相当于单元格的位置
- figure.paste(image, (img_w * j, img_h * i))
- # 贴完一张贴下一章
- count += 1
-
- # 显示图片
- figure.show()
- # 保存路径,默认是项目执行位置
- figure.save('MyHeartWillGoOn.png')
效果如下图:

其中的map是可以随意修改的,我根据1与0之间的变换拼成的图片。
更换成I LOVE YOU
- map = [
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
- [1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1],
- [1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1],
- [1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1],
- [1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1],
- [1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1],
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
- ]

如果有兴趣,也可以打印个特殊的:
- pip3 install matplotlib
- pip3 install numpy
- import matplotlib.pyplot as plt
- import numpy as np
-
- xZhou, yZhou, zZhou = np.linspace(-10, 10, 520), np.linspace(-10, 10, 520), np.linspace(-10, 10, 520)
- X, Y, Z = [], [], []
-
- for x in xZhou:
- for y in yZhou:
- for z in zZhou:
- if (x ** 2 + (9 / 4) * y ** 2 + z ** 2 - 1) ** 3 - (9 / 80) * y ** 2 * z ** 3 - x ** 2 * z ** 3 <= 0:
- X.append(x)
- Y.append(y)
- Z.append(z)
- plt.title("I LOVE YOU")
- fig = plt.figure()
- ax = fig.add_subplot(111, projection='3d')
- ax.scatter(X, Y, Z, s=20, alpha=0.5, color="pink")
- plt.show()
可以自己更换颜色啊,毕竟是情人节,爱情是红色的,那么情人。。。。粉色的也不错。

我电脑性能一般,等了大概2分钟。
情人节了,希望能对你的情人有点价值。
送你一首【离骚】
长太息以掩涕兮,哀民生之多艰。余虽好修姱以鞿羁兮,謇朝谇而夕替。既替余以蕙纕兮,又申之以揽茝。亦余心之所善兮,虽九死其犹未悔。怨灵修之浩荡兮,终不察夫民心。众女嫉余之蛾眉兮,谣诼谓余以善淫。
祝你能找到你的真心道侣。
道也者不可须臾离也可离非道。