39 lines
1.3 KiB
Rust
39 lines
1.3 KiB
Rust
|
|
fn main() {
|
||
|
|
let orig = std::fs::read("/mnt/extra/00_PROJECTS/hcie-rust-v4/_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;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|