003 愚人节的“礼物”
1. 缘起
愚人节就要到了,这两天看到一条热度比较高的新闻:微软禁过愚人节。我想,要不今年在朋友圈发张恶搞的图片?何乐而不为呢?
2. 想法
(1) 一开始,我准备发一张空白的图片
- 分辨率就取 1080p 吧
- 打开“画图”
- 按 ctrl+w
(2) 接下来,我觉得写点东西比较好
- 字体就用 20 号加粗的“微软雅黑”吧
- 颜色选择“灰色-25%”
- 写在左下角
(3) 给图片加点料
1) 想起一种把压缩包藏到图片里的方法
- 关键命令:
copy /b a.jpg+b.zip c.jpg
- 具体做法:
- 把图片与压缩包放到同一个文件夹(如 d:\magic)中
- 调出 cmd
- cd 到那个文件夹
- 输入上述“关键命令”
- a.jpg 原图(若是 .png 格式,下方就用 c.png;我试了一下,混用也能成功)
- b.zip 要藏入的压缩包
- c.jgp 合成后图片的名字
- 变回来:
- 将合成后的图片的后缀改为 zip
- 解压即可
2) 那压缩包里放什么好呢
- 要不,用 Python 的 turtle 画一张吧
- 程序
import turtle as tt
from math import sqrttt.setup(600, 600) # 设置 600 x 600 的画布并居中
tt.hideturtle() # 隐藏画笔
tt.pensize(6) # 设置画笔粗细
tt.pencolor("#00f5ff") # 设置画笔颜色# 走到右上角
tt.seth(45)
tt.pu()
tt.fd(200)
tt.pd()# 鱼的“脑门”
tt.seth(135)
tt.circle(200, 130) # 相当于极坐标的 roll(r, angle)# 鱼嘴
tt.pu()
tt.circle(200, 10)
tt.pd()# 鱼腹
tt.circle(200, 130)# 鱼“屁股”
tt.seth(0)
tt.circle(200/sqrt(2), -90)# 鱼尾(开始)
tt.seth(-90)
tt.circle(100, 135)tt.seth(0)
tt.circle(100/sqrt(2), -180)# 鱼尾(结束)
tt.seth(135)
tt.circle(100, 135)# 鱼“后背”
tt.seth(90)
tt.circle(-200/sqrt(2), 90)# 鱼目
tt.pu()
tt.goto(-110, 50)
tt.pd()
tt.circle(20)# 鱼珠
tt.pu()
tt.goto(-113, 70)
tt.pd()
tt.circle(6)# 鱼嘴旁的小气泡
tt.pu()
tt.goto(-230, 60)
tt.pd()
tt.circle(15)# 鱼嘴旁的大气泡
tt.pu()
tt.goto(-250, 120)
tt.pd()
tt.circle(30)# 打个标签
tt.pu()
tt.goto(50, -260)
tt.pd()
tt.write("—— by YorkFish", font=("consolas", 20, "bold"))tt.done() # 绘制结束后停住
3) 再加一点艺术感
- 用 Python 的 pillow 把图片改成字符画
- 程序
from PIL import Image, ImageFilter# 这个字符串是我随便敲的,就是大小写字母加一些常见字符
codeLib = '''ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz<=>:;+~-,.^"'*`_'''
count = len(codeLib)def transform1(image_file):image_file = image_file.convert("L") # L 为“黑白模式”codePic = "" # 存储字符for h in range(image_file.size[1]): # 图片的纵向像素值for w in range(image_file.size[0]): # 图片的横向像素值gray = image_file.getpixel((w, h)) # 计算每个点的“灰度值”,也有别的方法codePic += codeLib[ int(count*gray/256)] # 因为字符串不足 256 个codePic += "\r\n" # 回车return codePicfp = open(u"fish.png", "rb") # 要变成字符画的原图
image_file = Image.open(fp)
image_file = image_file.resize((int(image_file.size[0]*0.5), int(image_file.size[1]*0.25))) # 高质量缩放tmp = open("fish.txt", "w") # 变成字符画后的文件
tmp.write(transform1(image_file))
tmp.close()
- 为方便查看,我调了一下字体
- 记事本菜单栏 -> 格式 -> 字体 -> consolas -> 2 号
4) 之前作过 Python Challenge 的某题:从一个字符串中找出谜底
- 我在 [Python3 练习] 009 写过
- 那就加个彩蛋
- 用“愚人节快乐”随机替换字符画中的 5 个字符
- 这样就可以用那个程序的方法检索出这个彩蛋
- 。。。。。。
- 不,没有人会这么无聊玩这个游戏的!
3. 缘灭
其实天天都是“愚人节”,前段时间,我在地铁里见到这样一幕:
一位 50 左右的女士接通一个电话,她大声地说:”我现在在医院打针!“这句话一下子将周围人的目光吸引了过去。她没说几句,车厢内响起了报站声,不知电话彼端的人什么反应。
类似的戏码时有发生……
至于这张图片,我已经不想发了。
当然,最后还是祝各位在愚人节玩得愉快!
转载于:https://www.cnblogs.com/yorkyu/p/10625372.html
003 愚人节的“礼物”相关推荐
- 1045: 愚人节的礼物
1045: 愚人节的礼物 时间限制: 1 Sec 内存限制: 128 MB 提交: 169 解决: 137 [提交][状态][讨论版] 题目描述 四月一日快到了,Vayko 想了个愚人的好办法-- ...
- HDU 1870 愚人节的礼物 栈的应用
愚人节的礼物 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- HDU1870 愚人节的礼物【堆栈+输入输出+水题】
愚人节的礼物 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 愚人节的礼物(HDU1870)
愚人节的礼物 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- HDU 1870 愚人节的礼物
题目链接:愚人节的礼物 解题思路:用栈保存括号,遇到(进栈,)出栈,遇到B输出栈内元素个数.水题. #include<cstdio> #include<cstring> #in ...
- HDU1870 愚人节的礼物【堆栈+输入输出】
愚人节的礼物 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 1870 愚人节的礼物
愚人节的礼物 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- c++实现简单的数据结构(1.链表合并 2.士兵队列训练问题 3.Rails 4.Josephus Problem 5.Tree Recovery 6.四则运算 7.愚人节的礼物 8.Web)
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮 ...
- 愚人节的礼物---浅析
愚人节的礼物 : 这道题将()当做箱子,因而我只需计算在找到B之前至少需要打开多少()即可,在出现(()(B))情况,我们其实无需打开另外一个箱子,只需要直接打开B. 因此这道题的主要思想就是数清楚& ...
最新文章
- 补充cpusim图片
- Hystrix 超时配置重写
- 图灵科普系列丛书封面有奖征集(贴图送书)
- scala------------:: , +:, :+, :::, +++的区别
- powershell设置了权限依旧无法运行脚本_Power Shell折腾记
- Jenkins Pipline语法
- mysql的socket文件_修改socket文件, MySQL启动报错
- 几何修复_*ST海润:实施终止退市 光伏产业修复成几何?
- Elasticsearch报错:NodeDisconnectedException[[][IP:9300][cluster:monitor/nodes/liveness] disc
- 董耀祖:云原生是趋势,多云、边缘云也变得很热
- 统计学中p值计算公式_统计学中的p值怎么算,具体步骤
- 电商项目中遇到的经典问题
- swapfile.sys文件的作用及如何禁用Hibernate.sys和Pagefile.sys
- Maven clean基本命令
- 大数据与个人隐私的平衡:懂你,但不认识你
- 读书 | 颠覆者:周鸿祎自传
- gitBlit的使用
- feko金属球远场RCS双站
- 【AI语音】华为EC6110M、Q21AQ、Q21C部分EC6110T、EC6110U_海思3798MV310_通刷_卡刷固件
- 台达,AS228T,plc程序模板和触摸屏程序模板,目前6个总线伺服,采用CANOPEN,适用于运动轴控制,程序可以在自动的时候暂停进行手动控制