🤡
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