python教你用骰子拼图

一、前言

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

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值