Add image export roundtrip automation

This commit is contained in:
2026-06-02 10:41:34 +02:00
parent 9d05d193a7
commit 9c6b52eb8e
8 changed files with 303 additions and 6 deletions

View File

@@ -98,17 +98,21 @@ Known local toolchain state:
capability coverage, UI color parsing, and layout XML parse coverage.
- `pano_cli inspect-image` reports PNG IHDR metadata as JSON and is covered by
`pano_cli_inspect_png_metadata_smoke` with a tiny IHDR fixture.
- `pp_assets_image_pixels_tests` decodes PNG payloads, encodes RGBA8 pixels to
PNG, round-trips encoded pixels back through the decoder, and rejects corrupt
or malformed image payloads.
- `pano_cli import-image` accepts a PNG path, decodes RGBA8 pixels through
`pp_assets`, attaches them to a pure `pp_document` face payload, and is
covered for checked-in decodable PNG import by `pano_cli_import_image_smoke`
and metadata-valid truncated PNG rejection by
`pano_cli_import_image_rejects_truncated_png`.
- `pano_cli export-image` writes a deterministic RGBA8 PNG through `pp_assets`
and is covered by `pano_cli_export_image_roundtrip_smoke`, which imports the
generated file back through `pano_cli import-image`.
- `pano_cli inspect-project` reports validated PPI thumbnail/body byte layout,
body summary fields, layer/frame descriptors, and dirty-face PNG payload
metadata, and is covered by `pano_cli_inspect_project_layout_smoke` with a
minimal PPI fixture.
- `pp_assets_image_pixels_tests` decodes PNG payloads to RGBA8 and rejects
corrupt image payloads.
- `pp_document_ppi_import_tests` attaches decoded PPI dirty-face payloads to
`pp_document` layer/frame storage and rejects payloads outside document
layers.
@@ -275,8 +279,10 @@ Known local toolchain state:
- `pano_cli import-image` exposes file-driven PNG decode and document
face-payload attachment through JSON automation and is covered by
`pano_cli_import_image_smoke` and
`pano_cli_import_image_rejects_truncated_png`; export/round-trip automation
remains a future CLI task.
`pano_cli_import_image_rejects_truncated_png`.
- `pano_cli export-image` exposes deterministic RGBA8 PNG writing through JSON
automation and is covered by `pano_cli_export_image_roundtrip_smoke`; full
legacy canvas export remains a future CLI task.
- `pano_cli save-project` exposes generated multi-layer, multi-frame PPI writing through JSON
automation and is covered by metadata-only and dirty-face-payload round-trip
smoke tests; full legacy canvas save parity remains tracked by

View File

@@ -335,6 +335,8 @@ input tests.
`pano_cli import-image` accepts a PNG path and imports decoded RGBA8 pixels
into a new pure `pp_document` face payload,
with checked-in decodable PNG and truncated PNG automation coverage,
`pano_cli export-image` writes a deterministic RGBA8 PNG through `pp_assets`
and round-trips it back through file import automation,
`pano_cli inspect-project` reports validated PPI thumbnail/body byte layout,
body summary, layer/frame descriptors, dirty-face PNG payload metadata, and
asset-level decode coverage, and
@@ -785,8 +787,10 @@ Results:
automation.
- `pano_cli import-image` accepts a PNG file path, decodes RGBA8 pixels through
`pp_assets`, attaches them to a pure `pp_document` face payload, and has
checked-in decodable-PNG plus truncated-PNG rejection smoke tests. Full
export/round-trip automation remains a future `pano_cli` task.
checked-in decodable-PNG plus truncated-PNG rejection smoke tests.
- `pano_cli export-image` writes deterministic RGBA8 PNGs through `pp_assets`
and has a save/import round-trip smoke test. Full legacy canvas export
remains a future `pano_cli` task.
- `pano_cli save-project` exposes generated multi-layer, multi-frame PPI writing through JSON
automation and is covered by metadata-only and dirty-face-payload save/load
round-trip smoke tests. Full legacy canvas save parity remains