一、前言

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

python教你用骰子拼图相关推荐

  1. python代码翻译-10 行代码,Python 教你自制屏幕翻译工具,有逼格!!

    原标题:10 行代码,Python 教你自制屏幕翻译工具,有逼格!! 1. 场景 大家如果平常遇到不认识的英文,相信大部分的人都会复制内容后,使用翻译软件,或者拷贝到网站上去执行翻译. 当然,对于 I ...

  2. 开课吧python课程-Python教父廖雪峰加入开课吧 打造技术品类黄金内容班底

    近日,刚刚宣布获得D轮融资的慧科集团再添喜讯--开源教程开发者Python教父廖雪峰作为内容合伙人和战略顾问加入慧科集团旗下互联网人学习成长社群开课吧,全面统筹和规划开课吧Python.Java.区块 ...

  3. python爬虫教程-Python教父|廖雪峰老师官方爬虫教程,13个案例带你全面入门!

    原标题:Python教父|廖雪峰老师官方爬虫教程,13个案例带你全面入门! Python简直就是万能的,你用Python都做过哪些事? 用网页看各大网站的VIP视频,用python下载? 用Pytho ...

  4. python代码翻译器-10 行代码,Python 教你自制屏幕翻译工具,有逼格!!

    原标题:10 行代码,Python 教你自制屏幕翻译工具,有逼格!! 1. 场景 大家如果平常遇到不认识的英文,相信大部分的人都会复制内容后,使用翻译软件,或者拷贝到网站上去执行翻译. 当然,对于 I ...

  5. python猜大小游戏,Python实现的摇骰子猜大小功能小游戏示例

    搜索热词 本文实例讲述了Python实现的摇骰子猜大小功能小游戏.分享给大家供大家参考,具体如下: 最近学习Python的随机数,逻辑判断,循环的用法,就想找一些练习题,比如小游戏猜大小,程序思路如下 ...

  6. 《趣学Python——教孩子学编程》——第1部分 学习编程 第1章 Python不是大蟒蛇 1.1 关于计算机语言...

    本节书摘来自异步社区<趣学Python--教孩子学编程>一书中的第1章,第1.1节,作者[美]Jason R. Briggs,尹哲 译,更多章节内容可以访问云栖社区"异步社区&q ...

  7. 手把手使用Python教你破解谷歌(Google)人机验证码—上篇

    手把手使用Python教你破解谷歌(Google)人机验证码-上篇 众里寻他千百度.蓦然回首,那人却在,灯火阑珊处. /1 前言/ 今天呢,咱们来说一下Google,我们都知道,Google是目前地表 ...

  8. Python教你几行代码生成一个自己的二维码名片

    Python教你几行代码生成一个自己的二维码名片 第一步:安装相关的库文件: 要导入一库文件 from seqno import helpers#安装库seqno: pip install seqno ...

  9. python基础--循环--模拟骰子

    IDE选择 python测试只需要用python shell就可以了,但是写程序还是需要一个IDE的,喜欢全面一点的可以选择pycharm,不过这个要付费,不过在天朝,你懂得,呵呵.喜欢轻便一点的可以 ...

  10. 使用 Python 进行 GUI 掷骰子模拟

    使用 Python 进行 GUI 掷骰子模拟 原文地址 最后更新 : 02 Aug, 2022 在本文中,我们将使用Tkinter和Python中的随机模块创建Rolling The Dices Ga ...

最新文章

  1. CSDN”原力计划“在召唤:技术人请集结,用原创技术影响万千开发者
  2. 7.1 pdo 宝塔面板php_小白入门基础傻瓜式操作PHP面板安装使用_Bt宝塔面板
  3. OpenCASCADE绘制测试线束:几何命令之近似值
  4. 【vue】vue.config.js
  5. H3C通过端口ID决定端口角色
  6. DCX读书报告Bring structure to the web有感
  7. python 模块学习--Numpy
  8. php和apache协同,apache和php之间协同工作的配置经验分享
  9. 小程序使用echarts
  10. jQuery easyUI Pagination控件自定义div分页(不用datagrid)
  11. Ubuntu 使用 Smina 对接教程
  12. cuda安装和卸载(ubuntu)
  13. 关于大规模 push 系统的解决方案
  14. 数据同步工具oracle goldengate安装与配置
  15. 前端优化之减少HTTP请求
  16. mysql 8.0 配置文件my.cnf中文注解
  17. 做个grub的U盘启动盘,即将grub安装到U盘上面。
  18. Nacos配置热更新两种方式。
  19. C++中的防卫式声明
  20. Unity项目--LoyPoly风格的FPS Demo(附试玩地址)

热门文章

  1. 如何将多个域名指向一个网址
  2. codevs 1296
  3. fastlane php,fastlane 自动化打包不同的target,以及手动传版本号参数
  4. 【韩顺平utility工具类】
  5. 【可见光室内定位】(三)基于图像传感器CMOS的可见光室内定位技术
  6. halcon测试篇:求两条线之间的交点
  7. 验证本地或远程网址是否HTTP/2站点
  8. 将Shapefile(SHP)转换为Surfer中的网格(GRD)的方法-通用方法。
  9. 【Excel】设置数据有效性以及COUNTIF用法
  10. 新浪微博开发平台地址 http://open.weibo.com/