rust - 如何在 Rust 中将图像的像素设置为黑色
问题描述
我想打开一个图像并将其所有像素设置为黑色。我有这段代码可以编译但会产生一个空的透明 png。我期待一个黑色的图像。
extern crate image;
use image::{GenericImageView, ImageBuffer, RgbaImage, imageops, Rgba};
fn main() {
let img = image::open("images/image1.png").unwrap();
let (width, height) = img.dimensions();
let mut out: RgbaImage = ImageBuffer::new(width, height);
for pixel in out.enumerate_pixels_mut() {
*pixel.2 = image::Rgba([255,255,255,1]);
}
out.save("out.png").unwrap();
}
解决方案
[255,255,255,1]
是一个白色的图像。
您需要使用以下[0,0,0,255]
. 在 rust 中,透明度没有被编码为浮点数,这与浏览器的 js 运行时不同。