[英]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.