用Python生成马赛克画
马赛克画是一张由小图拼成的大图,本文的封面就是我们的效果图,放大看细节,每一块都是一张独立的图片,拼在一起组成一张大图,感觉像是用马赛克拼出来的画,所以叫马赛克画。看到网上的一些马赛克画觉得很酷,于是自己用Python实现了一下将一张原图转换成马赛克画。
我们的效果图是这样的
原图是这样的
实现的具体思路是这样
第一步:首先收集一组图片,这些图片会作为大图中的小方格图片。图片越多,最后生成的图片颜色越接近。
第二步:将要转换的图片分割成一个一个小方格图片,像下面这样
第三步:对于每一个小方格图片,取图片集里面最接近的图片替换。所有小方格都替换后,就生成了我们最终的马赛克画。
听上去是不是很简单?
我们来看一下具体的实现步骤,下面是一些核心代码。完整代码可在公众号后台回复“mosaic”获取。
我们的图片集存在images目录下,下面的代码加载目录下

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
配置中心框架IConfCenter
本篇和大家分享的是一个简易配置中心框架IConfCenter,框架是利用空余时间写的,主要以配置文件+redis存储方式作为数据同步驱动,目前支持的配置文件格式有 .properties 和 .config,后期有时间可能增加 .xml 和 .yml文件的识别。框架结构简单分为: confserver - 服务端 confAdmin - 配置中心后台管理 confCenter - 配置中心 confclient - 客户端 每分钟获取配置 订阅配置中心刷新配置 confAdmin - 配置中心后台管理 后台管理主要就是一个简单的操作界面,采用springboot+thymeleaf+jquery搭建,目前主要有两个功能:展示配置文件列表和启用某个配置 展示配置文件列表:其实就是读取本地磁盘目录中的配置文件信息,主要的service代码如下: /** * 配置文件列表 * * @return */ public List<File> getListConf() { File baseFile = new File(confCenterConf.confserver_confs...
- 下一篇
Java读取文件的四种方式
按字节读取文件内容 按字符读取文件内容 按行读取文件内容 随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 */ public static void readFileByBytes(String fileName) { File file = new File(fileName); InputStream in = null; try { System.out.println("以字节为单位读取文件内容,一次读一个字节:"); // 一次读一个字节 in = new FileInputStream(file); int tempbyte; while ((tempbyte = in.read()) != -1) { System.out.write(tempbyte); } in.close(); } catch (IOException e) { e.printStackTrace(); return; } try { System.out.println("以字节为单位读取...
相关文章
文章评论
共有0条评论来说两句吧...