我想使用Image
板条箱将图片转换为纯黑白(例如无灰度),结果应该是具有0和255个RGB值的图片。
在docs之后,我写了以下内容:
let img = image::open("photo.jpg").unwrap(); // Load picture
let gray_img = img.grayscale(); // Convert it
// Access a random pixel value
let px = gray_img.get_pixel(0,0);
println!("{:?}", pixel.data); // Print RGB array
这里的问题是,无论我打印什么像素,它都会给我灰度值。 那么,是否有将图像转换为纯黑白的功能?像Pillow的Python转换函数?
答案 0 :(得分:2)
在这里,您可以首先构建灰度图像,然后将其抖动为黑白图像:
use image::{self, imageops::*};
let img = image::open("cat.jpeg").unwrap();
let mut img = img.grayscale();
let mut img = img.as_mut_luma8().unwrap();
dither(&mut img, &BiLevel);
img.save("cat.png").unwrap(); // this step is optional but convenient for testing
您当然应该正确地处理错误,而不仅仅是做unwrap
。