Kotlin 实战

使用 Kotlin Compose Desktop 开发的图像编

2024-05-05  本文已影响0人  fengzhizi715

一. 背景

前段时间,我抽空用 Kotlin 开发了一款桌面端的图像编辑器,支持多平台。因为 Compose Desktop 本身支持多平台,所以这款图像编辑器可以支持 Mac 、Windows、Linux。

做这款工具的初衷是方便自己,这几年在工作上经常跟图像打交道,所以自己需要一款图形化的工具来对图片进行编辑或者快速尝试一下算法的效果。

二. 功能

图像编辑器——Monica,github 地址:https://github.com/fengzhizi715/Monica

Monica 依赖的技术:使用 Kotlin Compose 作为 UI,复杂的计算使用 Coroutines 处理,图像操作使用 BufferedImage 和卷积相关。除了使用自己写的一个缓存库,其他没有使用任何第三方库。对了,UI 风格参考了:https://github.com/equationl/TiltshiftHelper

当前这个版本,Monica 的主要功能包括:

支持加载本地的图片和网络的图片


1.png

图片加载后,可以开始对图片进行编辑。


2.png

使用基础功能,通过鼠标点击之后对指定的区域进行模糊处理。


3.png

使用基础功能,通过鼠标点击之后对指定的区域进行马赛克处理。


4.png

调整图像的饱和度、色相、亮度,也就是进行 HSL 调色。


5.png

Monica 支持多达 20 款滤镜,大多数可以自行调整参数。


6.png

如果需要修改滤镜的默认参数,修改完之后需要点击“应用参数”这个按钮,否则无法生效。


7.png 8.png 9.png 10.png

各种滤镜效果可以不断叠加,也可以跟 HSL 调色以及基础功能一起使用。

最后,还有一个比较基础的功能就是对图像的缩放,点击“放大镜”按钮会进入一个放大预览的界面。可以拖动图像,也可以对图像进行缩放。


11.png

三. Todo List && 一些思考

Monica 刚刚搭好一个架子,完成了 0.1 版本,后续会不断完善其功能。

Monica github 地址:https://github.com/fengzhizi715/Monica

完善的方向主要是:

目前,Monica 完全使用 Kotlin 进行开发,不依赖于 OpenCV。最主要 Compose Desktop 不支持交叉编译,所以目前还没有使用 OpenCV。

后续如果需要使用复杂的算法,可能不得不使用 OpenCV 或者使用一些模型。另外,OpenCV 我也用了好几年,目前正在连载 OpenCV 系列的笔记。Monica 的很多滤镜及其原理可以在我的 OpenCV 系列的笔记里找到。

该系列的相关文章:
图像编辑器 Monica 之图像涂鸦、裁剪、有趣的滤镜

上一篇 下一篇

猜你喜欢

热点阅读