image - 无法保存 ImageBuffer : no method named `save` found

标签 image rust

我正在尝试保存 ImageBuffer到一个文件,但我在让类型达成一致时遇到一些麻烦:

extern crate image;

use image::{ImageBuffer, Pixel, Rgb};

fn main() {
    let img = ImageBuffer::new(256, 256);

    for x in 0..256 {
        for y in 0..256 {
            let pixel = Rgb::from_channels(0, x ^ y, 0, 0);
            img.put_pixel(x, y, pixel);
        }
    }

    img.save("output.png");
}

这会产生以下编译器错误:

error: no method named `save` found for type `image::ImageBuffer<image::Rgb<u32>, std::vec::Vec<u32>>` in the current scope
  --> src/main.rs:15:9
   |
15 |     img.save("output.png");
   |         ^^^^

我认为像素类型与 save seen in the docs 所需的定义不匹配.

最佳答案

我最终需要进行一些类型转换才能使签名一致。

这是工作代码:

extern crate image;

use image::{ImageBuffer, Pixel, Rgb};

fn main() {
    let mut img = ImageBuffer::new(256, 256);

    for x in 0..256 {
        for y in 0..256 {
            let pixel = Rgb::from_channels(0, x as u8 ^ y as u8, 0, 0);
            img.put_pixel(x as u32, y as u32, pixel);
        }
    }

    img.save("output.png");
}

关于image - 无法保存 ImageBuffer : no method named `save` found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43300921/

相关文章:

import - 包括一个内部模块产生 "maybe a missing crate ` 模块 2`"

rust - 如何将数据从 csv::StringRecord 推送到结构中的每个列向量?

rust - 为什么 `find` 通过引用获取参数然后取消引用它?

html - 与仅链接到硬文件相比,为网站使用内联/base64 图像要快多少?

html - 3 张相同尺寸但样式相同的图片 - 一张看起来尺寸略有不同

Java - 将图像转换为图标/ImageIcon?

oop - 在 Rust 中更改枚举的字段

json - 读入json文件,写入不缩进

javascript - 图像 slider 导航按钮

JavaScript 用一张图像填充浏览器