こちらの記事の続きになります
クリップボードに保存されている画像の解像度を半分にするツールを作ってみた
ツール作成の経緯
前回、クリップボードに保存されている画像の解像度を半分にするツールを作ってみたのですが、使っているうちに不満点が出てきました。
具体的には、以下の2点です。
・画像を見ながら解像度の縮小具合を決めたい (前回は解像度半分に決め打ち)
・画像で映ってはいけない所に黒い板を配置して見えなくしたい
上記2点は、普段よく使っているゲームエンジンの bevy クレートを使えば解消できるかなと思い、今回 クリップボードに保存されている画像に対して、色々編集出来るツール を作ってみました。
出来上がったもの
こちらに出来上がったツールのリポジトリがあります
https://github.com/8bitTD/clipboard_editor

つまずいた箇所
GUI
最初は bevy_egui を使ってGUIを作成して、縮小具合の調整や黒い板の配置をしていたのですが、要件がシンプルなためGUIを無しにしてマウスとキーボードだけで完結できるように軌道修正しました。
クリップボードへの書き込み
前回同様 arboard クレートを使ってクリップボードへの書き込みをしようと思ったのですが、set_image関数を実行するとbevyでthreadPoolエラーが出てしまい使用を断念しました。thread 'Compute Task Pool (0)' panicked
代わりにこちらの clipboard-win クレートで代用しました。
また、クリップボードに画像を書き込む方法はこちらのページを参考にしました。
画像切り抜き時の輪郭部分に背景色を拾ってしまう問題
クリップボード画像を一度bevyでSprite化して編集後にスクショして必要な部分だけ切り抜く処理をしていたのですが、どうしても画像の輪郭に背景色が乗ってしまって見た目が悪くなって困っておりました。最終的に苦肉の策で少し小さめに切り抜いて輪郭が背景色を拾わないようにしてみました。
まとめ
試行錯誤の末、なんとか不満点の2つは解消できたので良かったです。
あとbevyのマルチスレッド処理でクリップボードの書き込み処理がエラーになる経験は大変勉強になりました。
出来上がった後に画像編集ソフト使ったほうが楽だったのでは...と思ったり思わなかったり。。。
良かったら使ってみてください。(*´∀`)ノ