首页 > 解决方案 > 如何在 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();
}

标签: rust

解决方案


[255,255,255,1]是一个白色的图像。

您需要使用以下[0,0,0,255]. 在 rust 中,透明度没有被编码为浮点数,这与浏览器的 js 运行时不同。


推荐阅读