🤡

Rustで画像ファイルを扱う

2022/01/24に公開

Rustで基本的な画像処理を行ってみます。

Rustの開発環境の構築はこちら

画像ライブラリを追加します。
VS Codeのcratesプラグインがあるとバージョンがサジェストされるので便利です。

[dependencies]
image = "0.23.14"

画像を開く

画像を読み込んでみます。

use image::GenericImageView;
fn main() {
    let img = image::open("image.png").unwrap();
    println!("dimensions {:?}", img.dimensions());
}

dimensions が表示されれば成功。

画像を保存

画像を保存してみます。

fn main() {
    let img = image::RgbImage::new(512, 512);
    img.save("result.png").unwrap();
}

512x512pxの黒い画像が保存されていれば成功。

画像を作成

1pixel毎に描画して画像を作成してみます。

fn main() {
    let mut img = image::RgbImage::new(512, 512);
    for (x, y, pixel) in img.enumerate_pixels_mut() {
        let r = (0.3 * x as f32) as u8;
        let b = (0.3 * y as f32) as u8;
        *pixel = image::Rgb([r, 0, b]);
    }
    img.save("result.png").unwrap();
}

赤と青のグラデーション画像が保存されていれば成功。

Discussion

ログインするとコメントできます