當前位置: 妍妍網 > 碼農

開源推薦 | 源碼開放的影像編輯器

2024-05-07碼農

一. 背景

前段時間,我抽空用 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 款濾鏡,大多數濾鏡也可以單獨調整參數。

  • 對修改的影像進行保存。

  • 放大、縮小影像。

  • 支持載入原生的圖片和網路的圖片

    圖片載入後,可以開始對圖片進行編輯。

    使用基礎功能,透過滑鼠點選之後對指定的區域進行模糊處理。

    使用基礎功能,透過滑鼠點選之後對指定的區域進行馬賽克處理。

    調整影像的飽和度、色相、亮度,也就是進行 HSL 調色。

    Monica 支持多達 20 款濾鏡,大多數可以自行調整參數。

    如果需要修改濾鏡的預設參數,修改完之後需要點選「套用參數」這個按鈕,否則無法生效。

    8.png

    9.png

    10.png

    各種濾鏡效果可以不斷疊加,也可以跟 HSL 調色以及基礎功能一起使用。

    最後,還有一個比較基礎的功能就是對影像的縮放,點選「放大鏡」按鈕會進入一個放大預覽的界面。可以拖動影像,也可以對影像進行縮放。

    三. Todo List && 一些思考

    Monica 剛剛搭好一個架子,完成了 0.1 版本,後續會不斷完善其功能。

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

    完善的方向主要是:

  • 由於大量使用 BufferedImage 類,需要重新封裝一下。

  • 增加繪畫、添加文字的功能,增加使用者和軟體的互動。

  • 增加對影像的裁剪,比如各種形狀的裁剪。

  • 增加一些有趣的濾鏡。

  • 最佳化部份演算法,提高效率。

  • 考慮增加人臉美顏的演算法。

  • 目前,Monica 完全使用 Kotlin 進行開發,不依賴於 OpenCV。最主要 Compose Desktop 不支持交叉編譯,所以目前還沒有使用 OpenCV。

    後續如果需要使用復雜的演算法,可能不得不使用 OpenCV 或者使用一些模型。另外,OpenCV 我也用了好幾年,目前正在連載 OpenCV 系列的筆記。Monica 的很多濾鏡及其原理可以在我的 OpenCV 系列的筆記裏找到。

    系統化學習直接掃碼檢視

    推薦閱讀