一. 背景

前段时间,我抽空用 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 的主要功能包括:

  • 提供加载本地图片、网络图片。
  • 对图片局部模糊、打马赛克。
  • 调整图片的饱和度、色相、亮度。
  • 提供 20 款滤镜,大多数滤镜也可以单独调整参数。
  • 对修改的图像进行保存。
  • 放大、缩小图像。

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

kotlin android 底部菜单隐藏 kotlin 桌面开发_java

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

kotlin android 底部菜单隐藏 kotlin 桌面开发_开发语言_02

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

kotlin android 底部菜单隐藏 kotlin 桌面开发_滤镜_03

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

kotlin android 底部菜单隐藏 kotlin 桌面开发_滤镜_04

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

kotlin android 底部菜单隐藏 kotlin 桌面开发_android_05

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

kotlin android 底部菜单隐藏 kotlin 桌面开发_滤镜_06

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

kotlin android 底部菜单隐藏 kotlin 桌面开发_java_07



kotlin android 底部菜单隐藏 kotlin 桌面开发_java_08

8.png

kotlin android 底部菜单隐藏 kotlin 桌面开发_kotlin_09

9.png

kotlin android 底部菜单隐藏 kotlin 桌面开发_kotlin_10

10.png

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

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

kotlin android 底部菜单隐藏 kotlin 桌面开发_kotlin_11

三. Todo List && 一些思考

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

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

完善的方向主要是:

  • 由于大量使用 BufferedImage 类,需要重新封装一下。
  • 增加绘画、添加文字的功能,增加用户和软件的交互。
  • 增加对图像的裁剪,比如各种形状的裁剪。
  • 增加一些有趣的滤镜。
  • 优化部分算法,提高效率。
  • 考虑增加人脸美颜的算法。

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