转眼又到了520表白节了,咱们程序员应该如何表白呢,接下来笔者就以亲自动笔给你们一份独家的表白秘笈。
一、比心
这个我之前介绍过母亲节的祝福方式https://blog.csdn.net/BEYONDMA/article/details/90137479,就是利用python的print函数去输出一个520的形状,以下程序可以运行在任何python版本,简单介绍其原理就是造一个能组成520形状的LIST,然后打印输出,具体代码如下:
ncol=20
nrow=10
proposal=[0,1,2,3,4,5,9,17,1+1*ncol,8+1*ncol,10+1*ncol,16+1*ncol,18+1*ncol,1+2*ncol,11+2*ncol,15+2*ncol,19+2*ncol,1+3*ncol,12+3*ncol,15+3*ncol,19+3*ncol,2+4*ncol,12+4*ncol,15+4*ncol,19+4*ncol,3+5*ncol,11+5*ncol,15+5*ncol,19+5*ncol,4+6*ncol,10+6*ncol,15+6*ncol,19+6*ncol,3+7*ncol,9+7*ncol,15+7*ncol,19+7*ncol,2+8*ncol,8+8*ncol,16+8*ncol,18+8*ncol,1+9*ncol,8+9*ncol,9+9*ncol,10+9*ncol,11+9*ncol,12+9*ncol,17+9*ncol]
proposalStr =‘‘
for i in range(1,ncol*nrow):
if i in proposal:
proposalStr=proposalStr+‘*‘
else:
proposalStr = proposalStr + ‘ ‘
if i%20==0:
proposalStr=proposalStr+‘\r\n‘
print(proposalStr)
二、制作照片墙
我们还可以利用python的图像处理功能,来把家庭中的点点滋润做成照片墙,如果是使用WINDOWS的读者请参考https://blog.csdn.net/BEYONDMA/article/details/88381705搭建环境。具体代码如下,简述其原理与上面的类似,也是利用520形状的矩阵,来布署照片,代码如下:
from PIL import Image
import os
path="F:/照片/2019/201901/pic"
canvasImage=Image.new(‘RGBA‘,(2000,1000))
ncol=20
nrow=10
proposal=[0,1,2,3,4,5,9,17,1+1*ncol,8+1*ncol,10+1*ncol,16+1*ncol,18+1*ncol,1+2*ncol,11+2*ncol,15+2*ncol,19+2*ncol,1+3*ncol,12+3*ncol,15+3*ncol,19+3*ncol,2+4*ncol,12+4*ncol,15+4*ncol,19+4*ncol,3+5*ncol,11+5*ncol,15+5*ncol,19+5*ncol,4+6*ncol,10+6*ncol,15+6*ncol,19+6*ncol,3+7*ncol,9+7*ncol,15+7*ncol,19+7*ncol,2+8*ncol,8+8*ncol,16+8*ncol,18+8*ncol,1+9*ncol,8+9*ncol,9+9*ncol,10+9*ncol,11+9*ncol,12+9*ncol,17+9*ncol]
listPic=[]
for i in os.walk(path):
listPic.append(i)
k=0
for j in range(1, 200):
if j in proposal:
orgImage = Image.open(os.path.join(path,listPic[0][2][k]))
print(orgImage)
canvasRow = j % 20;
canvasCol = int((j - canvasRow) / 20);
print(canvasRow)
print(canvasCol)
print()
orgImage = orgImage.resize((100, 100), Image.ANTIALIAS)
canvasImage.paste(orgImage, (canvasRow * 100, canvasCol * 100))
k=k+1
canvasImage.save(‘F:/new.bmp‘)
三、对话词云制作
还可以用我们之前介绍的wordcloud制作一个词云来表达爱意,具体可以将恋人之间的微信对话通过邮件方式导出文本,然后制作成词云,这里只要将词云的背景设置为我下面的截图即可
代码如下:
from wordcloud import WordCloud
import cv2
import jieba
import matplotlib.pyplot as plt
with open(‘F:/520/520.txt‘, ‘r‘) as f:
text = f.read()
cut_text = " ".join(jieba.cut(text))
print(cut_text)
color_mask = cv2.imread("F:/520/mask.jpg")
520cloud = WordCloud(
font_path=" C:\\Windows\\Fonts\\simkai.ttf",
background_color=‘white‘,
mask=color_mask,
max_words=100,
max_font_size=40
)
520wCloud = 520cloud.generate(cut_text)
520wCloud.to_file(‘F:/520/cloud.jpg‘)
plt.imshow(520wCloud, interpolation=‘bilinear‘)
plt.axis(‘off‘)
plt.show()
怎么样这几个例子都不难,而且自己敲一下代码,还能学到不少python的知识,最后祝天下有情人终成眷属吧,也祝各位IT人都能在520这天找到自己的幸福,表白成功!
原文地址:https://www.cnblogs.com/hyhy904/p/10958449.html