Rustでクリップボードと簡単に画像をやりとりできるクレートを作りました。
こちらの記事を参考にさせていただきました。
Goで画像をクリップボードに保存、読み取るライブラリを作った
はじめに
プレゼンの資料を作るときに背景が白でないテーマを使っています。なので背景が白い画像の背景を透過させるコマンドラインツールをRustでつくりました。
現在は、背景を透過したいファイルをコマンドライン引数で与えるとoutput.png
として出力するという仕様になっています。
しかし、スクショを資料に貼りたいときなどいちいちファイルに保存したりするのは面倒くさいので、クリップボードの画像を透過してそのままクリップボードに保存したら便利だなと思いました。(まだ実装してません)
なのでこの記事を参考にRustでクリップボードと画像を簡単にやり取りできるクレートを作りました。
使い方
クリップボードの画像をclipboard.png
としてファイルに出力する。
use anyhow::Result;
#[tokio::main]
async fn main() -> Result<()> {
let img = imboard::copy_image::from_clipboard().await?;
img.to_rgba().save("clipboard.png").unwrap();
Ok(())
}
ファイルの画像をクリップボードにコピーする。
use anyhow::Result;
#[tokio::main]
async fn main() -> Result<()> {
let img = image::open("path/to/image")?;
imboard::copy_image::to_clipboard(img).await?;
Ok(())
}
最後に
このクレートは今のところmacOSにしか対応していません。やる気があればWindowsとLinuxにも対応させようと思っています。プルリクなど大歓迎なのでよろしくお願いします。