制作了一个马赛克图片转换器

简介: 制作了一个马赛克图片转换器,可以将图片转换成马赛克风格,并可转换为 css box-shadow 进行输出。

网络异常,图片无法展示
|

制作了一个马赛克图片转换器,可以将图片转换成马赛克风格,并可转换为 css box-shadow 进行输出。前排先放效果图、转换器地址和 GitHub 地址:

网络异常,图片无法展示
|

转化器地址:pixel.heyfe.org/

GitHub 地址:github.com/ZxBing0066/…

转换器功能

转换器会将传入的图片转换为马赛克风格,并将马赛克风格的图片以 box-shadow 进行转换,借助 box-shadow,我们可以直接用 css 来渲染该图片,且可以通过 box-shadow 的一些特性来达成一些比较好玩的效果,比如用间隙来加重马赛克风格:

网络异常,图片无法展示
|

或者直接将间隙拉到顶,达成类似点阵图的效果:

网络异常,图片无法展示
|

又或者借助 border-radius,实现圆点图效果:

网络异常,图片无法展示
|

制作出想要的效果后,可以在右侧点击 复制 box-shadow 样式 按钮复制其样式。

实现原理

关于 box-shadow 实现马赛克图的原理之前有一篇文章中有提到,这里不再赘述。此处大概说一下图片转换为马赛克图再转为 box-shadow 的过程。

转换器在拿到图片后,会将图片绘制在一个非常小的画布中,以此来降低图片的精度,然后将画布中绘制的低精度图片进行二次渲染,渲染到较大的画布中,此时由于图片被拉伸,就会形成一定的马赛克效果。随后为了将马赛克效果图转换为 box-shadow,转换器会去读取画布中的绘制信息,将其生成为一组二维数组,再根据其中的颜色转换为 box-shadow 中的属性。至此转换器的功能就完成了。

当然其中还有一些细节(浏览器会默认启用平滑绘制导致马赛克失效等问题),本篇不打算细说,会在下篇专门写一篇来讲一下具体实现。

最后

最近有空就将其稍微优化了一下进行开源。目前一些细节还有点欠缺,待改进。

再贴一下地址:

转化器地址:pixel.heyfe.org/

GitHub 地址:github.com/ZxBing0066/…

相关文章
Photoshop制作漂亮白色荧光文字图片
Photoshop制作漂亮白色荧光文字图片
76 0
|
7月前
|
人工智能 搜索推荐 定位技术
证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
177 1
|
7月前
|
数据可视化 定位技术 开发者
黑白或彩色线稿地图设计定制装饰画中线条轮廓素材底图获取方法合集
黑白或彩色线稿地图设计定制装饰画中线条轮廓素材底图获取方法合集
|
计算机视觉 C++ Python
Python相片图片编辑工具-翻转旋转亮度磨皮裁剪添加文字
这篇博客针对<<Python相片图片编辑工具-翻转旋转亮度磨皮裁剪添加文字>>编写代码,代码整洁,规则,易读。 学习与应用推荐首选。
113 0
Photoshop利用置换滤镜制作文字人像
Photoshop利用置换滤镜制作文字人像
87 0
|
前端开发 Android开发
制作圆形图片,你会以下几种?
制作圆形图片,你会以下几种?
制作圆形图片,你会以下几种?
|
异构计算 Python
|
前端开发 算法
制作了一个马赛克图片转换器 - 实现篇
上文有讲到我制作了一个马赛克图片转换器,可以将图片转换成马赛克风格,并可转换为 css box-shadow 进行输出。
|
Java 计算机视觉 Python
opencv换照片底色
opencv换照片底色
221 0