Files
hcie-rust-v3.05/hcie-io/examples/inspect_psd.rs
2026-07-13 20:33:39 +03:00

39 lines
1.3 KiB
Rust

fn main() {
let orig = std::fs::read("/mnt/extra/00_PROJECTS/hcie-rust-_images/_test_images/example3/Example3-mini.psd").unwrap();
let saved = std::fs::read("/mnt/extra/00_PROJECTS/hcie-rust-v4/_tmp/Example3-mini-roundtrip.psd").unwrap();
let orig_psd = hcie_psd::Psd::from_bytes(&orig).unwrap();
let saved_psd = hcie_psd::Psd::from_bytes(&saved).unwrap();
let o_rgba = orig_psd.rgba();
let s_rgba = saved_psd.rgba();
println!("First 20 pixel differences:");
let mut printed = 0;
for idx in 0..orig_psd.width() as usize * orig_psd.height() as usize {
let o_r = o_rgba[idx * 4];
let o_g = o_rgba[idx * 4 + 1];
let o_b = o_rgba[idx * 4 + 2];
let o_a = o_rgba[idx * 4 + 3];
let s_r = s_rgba[idx * 4];
let s_g = s_rgba[idx * 4 + 1];
let s_b = s_rgba[idx * 4 + 2];
let s_a = s_rgba[idx * 4 + 3];
if o_r != s_r || o_g != s_g || o_b != s_b || o_a != s_a {
let x = idx % orig_psd.width() as usize;
let y = idx / orig_psd.width() as usize;
println!(" pixel ({}, {}): orig=[{}, {}, {}, {}] saved=[{}, {}, {}, {}]",
x, y, o_r, o_g, o_b, o_a, s_r, s_g, s_b, s_a
);
printed += 1;
if printed >= 20 {
break;
}
}
}
}