python 生成图片_火爆全网!这个 Python 项目很骚气!一秒生成可爱像素风图片!...

Tiler是一款能够将图片转换为像素风格的开源工具,支持多种图案如乐高、加号、圆形等,可调整颜色数量及图案大小,适用于制作拼贴画、十字绣等装饰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dca06fee02f87e8e0c703b849230cdea.png本文转自量子位,作者郭一璞像文字云一样,用各种小图拼出大的图片,构建一个像素风的世界,就像《我的世界》里一样,一定非常有趣。72a6f2078f005cd23961df071e19e3b2.gifcbf60f45d369cd302cb739ed3feafd59.png还可以拿来做拼贴画、十字绣等装饰。在这个名为 tiler 的 GitHub 开源项目里你就可以自动实现这一切,它刚刚开源一天,就已经涨到了 1500 星,增长速度肉眼可见。https://github.com/nuno-faria/tilerTiler,意味瓦工,也就是用各种小元素作为 “瓦”,搭建出一张大图片。项目预设了不少 “瓦”:有乐高、加号、圆形、@符号、心形、乘号、波浪线、横竖条、《我的世界》中的各种格子,以及曲别针形:8121bdbd1dee75d5917788fcfbbd48af.png另外还有一组万圣节主题 icon,包括各种南瓜灯、小鬼头、蝙蝠、猫头鹰:7fc87b85ee26c376e64423ec9240208c.png这些不同的 “瓦” 都可以设定大小颜色和角度,以适应不同的画面规格。另外,你还可以设定整个画面中由多少种颜色构成和 “瓦片” 的大小,也就是马赛克的模糊程度。你可以用不同材质的 “瓦片”,拼接出各种图案。比如梵高的《星空》,项目中展示了 10×10、25×25、50×50 三种圆形拼成的规格:568440b24d65a27ee14ee9d6a7ee38d8.png
10×10 的《星空》
cba0f491c094e2a0b9d0ab9023ae210e.png
25×25 的《星空》
6851bdcf3a7ae315bc1076ed5c1e01f4.png
50×50 的《星空》
有没有在 PS 里拖动高斯模糊半径控制条的感觉?你也可以设置让构成图片的 “瓦片” 大小不一17855f160282e4dbc98b6aab27c9c5ad.png也可以试试拿乐高积木来拼:d699c84de0b5feed37210e66cff1a1c6.png放大看,斑斓的星空,是这样的:12a80cfbc3c676ccf9dceabfff9e2cdf.png一个个小砖块,布满了乐高积木表面特有的圆形凸起。嗯,要是真有这么大一片乐高,想想就爽歪歪。(此处冲去乐高门店下单,金币 - 1000)还有乘号版:b4ea94ff80e39d1aa58aa4bfe4a6f0ea.png如果放大,你就会发现,这就是十字绣的图样啊!40b3de3878a33581f853384041a6aa6c.png这么大一副十字绣,色彩艳丽,斑斓交错,一看就可以玩很久,退休老母亲看到两眼发光。74ac071232f1a1f189ed2a1ac17c3067.png就是绣完挂在家里,也和你北欧风 / 极简风 / 莫兰迪风 / 自如风的房间非常搭配,成为全场最吸睛的装饰画。要是木有耐心,可以考虑一个迷你版:c17099ebd48146020010d1238245a9ad.png还可以做成《我的世界》的样子a5de1f20e8bf09e9ec3e409aa68e515b.pnge709b36d4a4e3cc61bbe954daacc0690.png星空的细节如下:8a7ccc9c991cf018642548fabdb33261.png你们能认识这些砖块都是啥么……

运行指南

如果想在自己电脑上运行的话,除了 Python 3 和 pip,你还需要装 OpenCV、numpy 和 tqdm。之后,靠命令行就可以解决了。你需要设置几个参数:在 gen_tiles.py 中设置:
  • DEPTH:每个颜色通道中的分割数量 (ex: DEPTH = 4 -> 4 * 4 * 4 = 64 colors);

  • ROTATIONS:旋转列表,以度为单位,应用在原始图像上 (ex: [0, 90])。

在 tiler.py 中设置:
  • COLOR_DEPTH:每个颜色通道中的分割数量 (ex: COLOR_DEPTH = 4 -> 4 4 4 = 64 colors);

  • RESIZING_SCALES:应用于每个图块的比例 (ex: [1, 0.75, 0.5, 0.25]);

  • PIXEL_SHIFT:移动以创建每个框的像素数 (ex: (5,5)); if None, shift will be the same as the tile dimension);

9434e3c9be9f2c6a9e16c02e8f4f118f.png
  • OVERLAP_TILES:如果构成图像的 “瓦片” 可以重叠;

  • RENDER:渲染图像;

  • POOL_SIZE:多处理池大小;

  • IMAGE_TO_TILE:图像到瓦片(如果作为第一个参数传递则忽略);

  • TILES_FOLDER:瓦片文件夹(如果作为第二个 arg 传递则忽略);

  • OUT:结果图像文件名。

脑洞丰富的作者

这个项目的作者 ID 叫 nuno-faria,除了这个 Tiler 项目之外,他还开源过不少有趣的东西。有一个用 Java 写的推箱子:a9731e51bea7d7f28ada662284d90ba2.png像素风满满的桌面足球:0d91e5a4eb5f4da480a01295282ba28b.gif还有俄罗斯方块、弹球等许多种,个个都还蛮有意思的~如此极具创造力的作者,实在令人佩服,有兴趣的话,可以到其主页深入了解一下:https://github.com/nuno-faria感谢阅读1fd0c0ad957e19af1a1f98c564026e24.png

推荐阅读:

1:真实的上海IT圈:张江男vs漕河泾男

2:真实的北京IT圈:后厂村姑 vs 后厂村花?

3:为什么你的提问没人解答?

4:Python爱好者社区历史文章合集

91d5e4698aa6c2cc806bd8c5d79eee27.png

3d670a9253784d0332ff0107f342bfe1.png好看请点这里~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值