python教你用骰子拼图
一、前言最近看到抖音上有人用骰子拼照片。仔细一想,这人肯定是借助了什么工具,把预览图生成好之后再拼的。我灵光一闪,赶紧用python写一个骰子拼图仿真程序,并且自己也买了3500个骰子拼了一张图,哈哈哈哈~二、效果三、代码地址代码我已经在github开源了,喜欢的可以点个star,转载请注明出处:https://github.com/zxf20180725/dice_jigsawmain.py是启
一、前言
最近看到抖音上有人用骰子拼照片。仔细一想,这人肯定是借助了什么工具,把预览图生成好之后再拼的。我灵光一闪,赶紧用python写一个骰子拼图仿真程序,并且自己也买了3500个骰子拼了一张图,哈哈哈哈~
二、效果
三、代码地址
代码我已经在github开源了,喜欢的可以点个star,转载请注明出处:https://github.com/zxf20180725/dice_jigsaw
main.py是启动文件,直接运行就行了。如果想用自己的图片(一定要是黑白图片,可以用ps的去色功能,并且图片尺寸不要太大,我建议100*100以内)只需要把代码中的文件路径改一下就行了(代码最后一行)
用法:
- 鼠标滚轮缩放
- 鼠标左键可以拖拽
- 键盘s键可以保存图片(文件会保存到当前目录下的target.png)
四、原理
其实这个原理很简单,说出来大家都懂。
首先把图片转成黑白,图片转成黑白之后,RGB三个通道的值都是相等的。
RGB的范围是[0,255],那么骰子的6个点正好可以代表6种明暗程度(骰子是黑底白点所以1点最暗,6点最亮)。
六种点数平分255,那么计算出来就是:那么rgb的值在[0,42.5]之间的时候用1点,rgb的值在(42.5,85]的时候用2点,以此类推。
然后每一个骰子都代表每一个像素点就行了,最后借助pygame把图片绘制出来。
ok,原理讲完啦,还有不理解的请看源码~
更多推荐
所有评论(0)