我正在Rust中使用image
(Link to repo)板条箱,使用以下代码将GIF图像编码为PNG:
fn encode_png(&self, img: &DynamicImage) -> Result<(), Error> {
let file = File::create("icon.png").unwrap();
let ref mut buff = BufWriter::new(file);
let encoder = PNGEncoder::new(buff);
match encoder.encode(&img.to_bytes(), 256, 256, img.color()) {
Ok(_) => Ok(()),
Err(err) => Err(Error::new(err.description()))
}
}
img
变量代表我用DynamicImage
方法从同一板条箱中打开的open
。
发生的情况是程序成功运行,但是输出文件已损坏。我根据以下文档编写了代码:PNGEncoder | encode
提前感谢!
上面我的代码的问题是,我给编码器提供了错误的图像尺寸作为参数(256,256)。