2026-07-09 02:59:53 +03:00
|
|
|
fn main() {
|
2026-07-13 14:37:22 +03:00
|
|
|
let path = std::path::Path::new("_images/_psd_stil_test/blend.psd");
|
2026-07-09 02:59:53 +03:00
|
|
|
let bytes = std::fs::read(path).unwrap();
|
|
|
|
|
let parsed = hcie_psd::parse_psd_sequential(&bytes).unwrap();
|
|
|
|
|
println!("=== Sequential Parser Output ===");
|
|
|
|
|
for (i, p) in parsed.iter().enumerate() {
|
|
|
|
|
println!("#{}: '{}' group={} size_hint={:?} effects={}", i, p.name, p.is_group,
|
|
|
|
|
p.mask_bounds.map(|m| (m[2]-m[0], m[3]-m[1])), p.effects.len());
|
|
|
|
|
for e in &p.effects {
|
|
|
|
|
println!(" - {} (enabled={})", e.effect_name(), e.is_enabled());
|
|
|
|
|
match e {
|
|
|
|
|
hcie_fx::LayerEffect::BevelEmboss { depth, size, .. } => {
|
|
|
|
|
println!(" depth={} size={}", depth, size);
|
|
|
|
|
}
|
|
|
|
|
hcie_fx::LayerEffect::InnerGlow { color, opacity, size, .. } => {
|
|
|
|
|
println!(" color={:?} opacity={} size={}", color, opacity, size);
|
|
|
|
|
}
|
|
|
|
|
hcie_fx::LayerEffect::OuterGlow { color, opacity, size, spread, .. } => {
|
|
|
|
|
println!(" color={:?} opacity={} size={} spread={}", color, opacity, size, spread);
|
|
|
|
|
}
|
|
|
|
|
hcie_fx::LayerEffect::Satin { opacity, angle, distance, size, .. } => {
|
|
|
|
|
println!(" opacity={} angle={} distance={} size={}", opacity, angle, distance, size);
|
|
|
|
|
}
|
|
|
|
|
hcie_fx::LayerEffect::DropShadow { opacity, angle, distance, size, .. } => {
|
|
|
|
|
println!(" opacity={} angle={} distance={} size={}", opacity, angle, distance, size);
|
|
|
|
|
}
|
|
|
|
|
hcie_fx::LayerEffect::ColorOverlay { color, opacity, .. } => {
|
|
|
|
|
println!(" color={:?} opacity={}", color, opacity);
|
|
|
|
|
}
|
|
|
|
|
hcie_fx::LayerEffect::GradientOverlay { opacity, angle, scale, .. } => {
|
|
|
|
|
println!(" opacity={} angle={} scale={}", opacity, angle, scale);
|
|
|
|
|
}
|
|
|
|
|
_ => {}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
println!("\n=== PSD Crate Output ===");
|
|
|
|
|
let psd = hcie_psd::Psd::from_bytes(&bytes).unwrap();
|
|
|
|
|
for (i, layer) in psd.layers().iter().enumerate() {
|
|
|
|
|
println!("#{}: '{}' opacity={}", i, layer.name(), layer.opacity());
|
|
|
|
|
}
|
|
|
|
|
println!("Groups: {:?}", psd.groups().keys().collect::<Vec<_>>());
|
|
|
|
|
}
|