一、前言

最近看到抖音上有人用骰子拼照片。仔细一想,这人肯定是借助了什么工具,把预览图生成好之后再拼的。我灵光一闪,赶紧用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,原理讲完啦,还有不理解的请看源码~

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐