火爆全网!这个 Python 项目很骚气!

Python知识圈

共 2353字,需浏览 5分钟

 ·

2020-04-07 23:27


点击上方Python知识圈,选择设为星标

回复1024获取Python资料


c8c950fad09a4a008d32bc4e92ca68f2.webp


本文转自量子位,作者郭一璞


阅读文本大概需要 5 分钟


点击「阅读原文」查看pk哥原创精品视频。像文字云一样,用各种小图拼出大的图片,构建一个像素风的世界,就像《我的世界》里一样,一定非常有趣。e83f886f6efb40f006dc2571d0bb5388.webp41de518d41d9f058aabf2ab0ab0e9dab.webp还可以拿来做拼贴画、十字绣等装饰。在这个名为 tiler 的 GitHub 开源项目里你就可以自动实现这一切,它刚刚开源一天,就已经涨到了 1500 星,增长速度肉眼可见。https://github.com/nuno-faria/tilerTiler,意味瓦工,也就是用各种小元素作为 “瓦”,搭建出一张大图片。项目预设了不少 “瓦”:有乐高、加号、圆形、@符号、心形、乘号、波浪线、横竖条、《我的世界》中的各种格子,以及曲别针形:58a7a3a51e863e2ee6d99e967fdb386a.webp另外还有一组万圣节主题 icon,包括各种南瓜灯、小鬼头、蝙蝠、猫头鹰:41c9702dc8b04471c345bb597af4595e.webp这些不同的 “瓦” 都可以设定大小颜色和角度,以适应不同的画面规格。另外,你还可以设定整个画面中由多少种颜色构成和 “瓦片” 的大小,也就是马赛克的模糊程度。你可以用不同材质的 “瓦片”,拼接出各种图案。比如梵高的《星空》,项目中展示了 10×10、25×25、50×50 三种圆形拼成的规格:b45bce2bb6b3d6ec0a6b5cd303eac580.webp
10×10 的《星空》
5579d8e668ca4eb34d32220fdc92fdcb.webp
25×25 的《星空》
9324e832a35fc4f14c53e97218827953.webp
50×50 的《星空》
有没有在 PS 里拖动高斯模糊半径控制条的感觉?你也可以设置让构成图片的 “瓦片” 大小不一f069a822b0d28eb010a09507399a0f19.webp也可以试试拿乐高积木来拼:fd47086adc762dc81caf81257c5fb6a9.webp放大看,斑斓的星空,是这样的:f8eb79f6acf64cb02d20db69a53fa5c9.webp一个个小砖块,布满了乐高积木表面特有的圆形凸起。嗯,要是真有这么大一片乐高,想想就爽歪歪。(此处冲去乐高门店下单,金币 - 1000)还有乘号版:197f6b3fdf4808036ab441cfc12ada0f.webp如果放大,你就会发现,这就是十字绣的图样啊!33bcb1bccf870df8119418369eefa14c.webp这么大一副十字绣,色彩艳丽,斑斓交错,一看就可以玩很久,退休老母亲看到两眼发光。7fa5e946f8538c018d6cf0ab4bf299de.webp就是绣完挂在家里,也和你北欧风 / 极简风 / 莫兰迪风 / 自如风的房间非常搭配,成为全场最吸睛的装饰画。要是木有耐心,可以考虑一个迷你版:458d39f16f7f70791c02b99527bb4079.webp还可以做成《我的世界》的样子650b23ab234b8b217caa3cbb70f4a42c.webpcfda5abaaf8e22975d682a5b478b8194.webp星空的细节如下:954549b755d51d9a3f157c52714e28ed.webp你们能认识这些砖块都是啥么……

运行指南

如果想在自己电脑上运行的话,除了 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);


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

  • RENDER:渲染图像;

  • POOL_SIZE:多处理池大小;

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

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

  • OUT:结果图像文件名。

脑洞丰富的作者

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

 

1a7dc9a93452efe55e488052a16b6f11.webp

-----------------------

 
公众号:Python知识圈(ID:PythonCircle博客:www.pyzhishiquan.com知乎Python知识圈微信视频号:菜鸟程序员 (分享有趣的编程技巧、Python技巧)bilibili:菜鸟程序员的日常(目前原创视频:10,累计播放量:15万)

一个学习Python的人,喜欢分享,喜欢搞事情!长按下图二维码关注,和你一起领悟Python的魅力

 


留言打卡 DAY 45

今日的留言话题是:分享下见过的有意思或者好用的项目关于留言打卡的规则参考:留言打卡第二季  (点击链接查看规则),请按照 昵称+天数(请以自己实际打卡的天数为准,如day1 or day2 or day3)+ 留言内容(不少于15字)的方式留言。

Python知识圈公众号的交流群已经建立,群里可以领取 Python 和人工智能学习资料,大家可以一起学习交流,效率更高,如果是想发推文、广告、砍价小程序的敬请绕道一定记得备注「交流学习」,我会尽快通过好友申请哦!通过好友后私聊我「学习资料」或者「进群」都可以。

扫码添加,备注:交流学习




往期推荐01

公众号所有文章汇总导航(2-10更新)

02

如何用一行代码实现网页变灰效果?

03

130 个相见恨晚的神器网站


朕已阅

f5447fbf3bb82de18e6e763ebf82d909.webp

浏览 40
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报