image - 找不到 image::ImageBuffer::from_vec() 的函数或关联项

标签 image rust rust-piston

我正在使用 Piston 的 image crate,代码如下:

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

let image = Vec::<Rgb<u8>>::new();

let image_buffer = ImageBuffer::<Rgb<u8>, Vec<Rgb<u8>>>::from_vec(
    width, height
    image,
).unwrap();

但是我得到这个错误:

error[E0599]: no function or associated item named `from_vec` found for type `image::ImageBuffer<image::Rgb<u8>, std::vec::Vec<image::Rgb<u8>>>` in the current scope
   --> src/main.rs:348:21
    |
348 |     let image_buffer = ImageBuffer::<Rgb<u8>, Vec<Rgb<u8>>>::from_vec(
    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function or associated item not found in `image::ImageBuffer<image::Rgb<u8>, std::vec::Vec<image::Rgb<u8>>>`

我不知道为什么。很明显在the documentation ,据我所知,这些类型似乎是正确的。

最佳答案

扩展一点:在上面的例子中,我们有一个 ImageBuffer::<Rgb<u8>, Vec<Rgb<u8>> .和 ImageBuffer提供了 from_vec 的两个实现,取决于它的类型参数:

impl<P, Container> ImageBuffer<P, Container>
where
    P: Pixel<Subpixel = u8> + 'static,
    Container: Deref<Target = [u8]>, 
impl<P: Pixel + 'static> ImageBuffer<P, Vec<P::Subpixel>>
where
    P::Subpixel: 'static, 

这些都在这里不起作用,因为 Container ImageBuffer<Rgb<u8>, Vec<Rgb<u8>> 中的参数类型是 Rgb<u8> 的向量值。它将取消引用 [Rgb<u8>] 的一部分,使其与第一个实现不兼容,第二个实现需要子像素值向量 ( <P as Pixel>::Subpixel ) 而不是实际像素值 ( Rgb<u8> )。 ImageBuffer一般是这样的键入此 crate expects 作为其像素数据容器。

工作示例:

extern crate image;

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

fn main() {
    let width = 64;
    let height = 64;
    let image = vec![0x7F_u8; width as usize * height as usize * 3];

    let image_buffer =
        ImageBuffer::<Rgb<u8>, Vec<u8>>::from_vec(width, height, image).unwrap();
}

Playground

关于image - 找不到 image::ImageBuffer::from_vec() 的函数或关联项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53212611/

相关文章:

sorting - 如何(如果可能)在 Rust 中按值对 BTreeMap 进行排序?

rust - Piston 创建一个多个正方形的 block

reflection - 如何在 Rust 中获取结构字段名称?

rust - Piston 应用程序在几分钟后因内存分配错误而崩溃

image - 如何对 Rust Piston 图像进行编码并在内存中获取结果?

jquery - 随着浏览器高度的变化调整水平布局中的图像大小

node.js - Node Js 检索并显示图像

android - 背景图像或背景颜色?

html - 图像的一部分的缩略图,同时保持纵横比

rust - 写入内联 x86_64 程序集时,内联 asm 约束 'i' 的操作数无效