簡體   English   中英

無法消費 Rgba<u8> (無方法)在 Rust</u8>

[英]Unable to consume Rgba<u8> (no methods) in Rust

let png = image::open("src/heightmaps/ALPSMLC30_N050E014_DSM_8_BIT.png").unwrap();
    for p in png.pixels() {
        let p: image::Rgba<u8> = p.2;
    }

p 是(u32, u32, image::Rgba<u8>) 我不知道如何從Rgba訪問u8 (VSCode 沒有找到任何方法)。 我該如何進行? 這是 Rgba 結構的鏈接: https://docs.rs/image/0.23.13/image/struct.Rgba.html

image::Rgba 是一個元組結構,您可以使用struct.0語法或更符合人體工程學的方式通過解構來訪問元組結構的字段:

let png = image::open("src/heightmaps/ALPSMLC30_N050E014_DSM_8_BIT.png").unwrap();
for (_, _, image::Rgba(p)) in png.pixels() {
    let [r, g, b, a] = p;
}

查看image::Rgba<T>的定義,似乎唯一的字段是公共的,因此您應該能夠直接訪問它。

例如用動詞解構:

let png = image::open("src/heightmaps/ALPSMLC30_N050E014_DSM_8_BIT.png").unwrap();
for p in png.pixels() {
    let p: image::Rgba<u8> = p.2;
    let rgba: [u8;4] = p.0;
    let [r,g,b,a] = rgba;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM