LoginSignup
5
3

More than 3 years have passed since last update.

Rustでクリップボードと画像のやりとりを行う

Posted at

Rustでクリップボードと簡単に画像をやりとりできるクレートを作りました。

こちらの記事を参考にさせていただきました。
Goで画像をクリップボードに保存、読み取るライブラリを作った

はじめに

プレゼンの資料を作るときに背景が白でないテーマを使っています。なので背景が白い画像の背景を透過させるコマンドラインツールをRustでつくりました。

現在は、背景を透過したいファイルをコマンドライン引数で与えるとoutput.pngとして出力するという仕様になっています。

しかし、スクショを資料に貼りたいときなどいちいちファイルに保存したりするのは面倒くさいので、クリップボードの画像を透過してそのままクリップボードに保存したら便利だなと思いました。(まだ実装してません)

なのでこの記事を参考にRustでクリップボードと画像を簡単にやり取りできるクレートを作りました。

使い方

anyhowtokioimageを使っています。

クリップボードの画像を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にも対応させようと思っています。プルリクなど大歓迎なのでよろしくお願いします。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3