• 最长情的告白就是陪伴【Python七夕祝福】——那些浪漫的开始


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

    那些浪漫的开始

    浪漫,对于男人来说是无法解释的,不理解、不知道、难以揣测、难以衡量、难以捉摸,但是最最最简单的方式就是用长时间的陪伴来表达自己的爱意,那么本文用陪伴的各种经历照片拼成一些能些许表达爱意的浪漫礼物。

    希望能对大家有所价值。

    创意代码表

    编码语言:Python3.x

    编码环境:PyCharm Community Edition 2021.2

    目录

    那些浪漫的开始

    创意代码表白

    图片图形组合

    3d❤库

    3d❤参考源码:

    3d❤实际效果:


    图片图形组合

    库:

    1. pip3 config set global.index-url https://repo.huaweicloud.com/repository/pypi/simple
    2. pip3 config list
    3. pip3 install --upgrade pip
    4. pip3 install Image

    这里第一项是修改镜像地址,华为的我在学校下载的快一些,第二个查看是否修改成功,第三个是将pip升级到最新版本,最后一个才是咱们需要用到的Image图片库。

    对应的位置上一定需要有图片,否则会读取失败。

    编码如下: 

    1. from PIL import Image
    2. import os
    3. map = [
    4. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    5. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    6. [1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1],
    7. [1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1],
    8. [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
    9. [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1],
    10. [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1],
    11. [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
    12. [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],
    13. [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
    14. [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
    15. [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1],
    16. [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1],
    17. [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    18. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    19. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    20. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    21. ]
    22. count = 0
    23. for item in map:
    24. for item1 in item:
    25. if item1 == 0:
    26. count += 1
    27. print("需要图片:", count, "张")
    28. # 图片路径-自定义就行
    29. img_dir = r"D:/images/"
    30. # 获取img_dir下的所有文件,都是一个类型的图片
    31. imgs = os.listdir(img_dir)
    32. # 设置所有的图片的尺寸,别太大
    33. img_h = 192
    34. img_w = 192
    35. # 获取行数
    36. rows = len(map)
    37. # 获取列数
    38. columns = len(map[0])
    39. # 设定图片
    40. figure = Image.new("RGB", (img_w * columns, img_h * rows), "white")
    41. # 初始图片下标
    42. count = 0
    43. # 开始放置图片
    44. for i in range(len(map)):
    45. for j in range(len(map[i])):
    46. # 如果元素是不是1,就放图片
    47. if map[i][j] != 1:
    48. # 异常处理,防止有些图片无法读取
    49. try:
    50. # 使用Image.open("图片路径")方法获取图片对象
    51. image = Image.open(os.path.join(img_dir, imgs[count]))
    52. except:
    53. continue
    54. # resize((自定义宽,自定义高))用来改变图片的尺寸
    55. image = image.resize((img_w, img_h))
    56. # 将修改尺寸后的图片(image)粘贴(paste)到画布(figure)上
    57. # 第一个参数 是图片对象
    58. # 第二个参数是 图片在画布上的位置,相当于单元格的位置
    59. figure.paste(image, (img_w * j, img_h * i))
    60. # 贴完一张贴下一章
    61. count += 1
    62. # 显示图片
    63. figure.show()
    64. # 保存路径,默认是项目执行位置
    65. figure.save('MyHeartWillGoOn.png')

    效果如下图: 

    其中的map是可以随意修改的,我根据1与0之间的变换拼成的图片。

    更换成I LOVE YOU

    1. map = [
    2. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    3. [1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1],
    4. [1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1],
    5. [1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1],
    6. [1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1],
    7. [1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1],
    8. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
    9. ]

    如果有兴趣,也可以打印个特殊的:

    3d❤库

    1. pip3 install matplotlib
    2. pip3 install numpy

    3d❤参考源码:

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. xZhou, yZhou, zZhou = np.linspace(-10, 10, 520), np.linspace(-10, 10, 520), np.linspace(-10, 10, 520)
    4. X, Y, Z = [], [], []
    5. for x in xZhou:
    6. for y in yZhou:
    7. for z in zZhou:
    8. if (x ** 2 + (9 / 4) * y ** 2 + z ** 2 - 1) ** 3 - (9 / 80) * y ** 2 * z ** 3 - x ** 2 * z ** 3 <= 0:
    9. X.append(x)
    10. Y.append(y)
    11. Z.append(z)
    12. plt.title("I LOVE YOU")
    13. fig = plt.figure()
    14. ax = fig.add_subplot(111, projection='3d')
    15. ax.scatter(X, Y, Z, s=20, alpha=0.5, color="pink")
    16. plt.show()

    3d❤实际效果:

    可以自己更换颜色啊,毕竟是情人节,爱情是红色的,那么情人。。。。粉色的也不错。

    我电脑性能一般,等了大概2分钟。

    情人节了,希望能对你的情人有点价值。

    送你一首【离骚】

    长太息以掩涕兮,哀民生之多艰。余虽好修姱以鞿羁兮,謇朝谇而夕替。既替余以蕙纕兮,又申之以揽茝。亦余心之所善兮,虽九死其犹未悔。怨灵修之浩荡兮,终不察夫民心。众女嫉余之蛾眉兮,谣诼谓余以善淫。

    祝你能找到你的真心道侣。

    道也者不可须臾离也可离非道。

  • 相关阅读:
    Openssl数据安全传输平台016:在QT中的数据库操作+在项目中的设计与实现
    超声功率放大器使用范围有哪些
    JVM架构和内存管理优化
    6 种顶级加密方法 + 示例
    文章本天成|跟我一起来一场简洁易懂的servlet的过滤器Filter的学习吧
    Apollo之Docker部署
    开学季 | Y 省教育厅这张卷,融云答出了100分!
    阿里云K8S部署Go+Vue项目
    [架构之路-50]:目标系统 - 系统软件 - Linux下的网络通信-6-PON、EPON、GPON
    NFT Insider#109:The Sandbox推出了首个足球小将 NFT 作品集,YGG Web3 游戏峰会即将开启!
  • 原文地址:https://blog.csdn.net/feng8403000/article/details/126093886