# PNG-to-ICO editorial test record

Test date: `2026-08-12`

## Build under test

| Property | Value |
| --- | --- |
| Product | LocalFlux |
| Installed version | `1.0.7.0` |
| Architecture | `x64` |
| Package | `artifacts/release-retention/1.0.7.0/20260729-formal-3536c04/packages/x64/LocalFlux_1.0.7.0_x64.msix` |
| Package bytes | `563,359,867` |
| Package SHA-256 | `4EA8632EFF87F7BFC08FC8EEB653BCDD5112B3DFF0997AB575A7FD6A077F1C0F` |
| Package identity | `Fuzzysense.Localflux_1.0.7.0_x64__pc6sn726wzvrt` |
| Formal candidate source | `3536c04` |
| Bundled image runtime | ImageMagick `7.1.2-17` |
| Environment | Local Windows x64 host; editorial run, not clean-VM release qualification |

The package was installed with `scripts/install-localflux-release.ps1` using `-Architecture x64`, `-SkipContextMenuRegistration`, and `-ReplaceSameVersion`. The installer reported `MainInstallStatus: Updated`; the installed package reported version `1.0.7.0`, architecture `X64`, and status `Ok`.

## Fixture provenance

| Fixture | Provenance |
| --- | --- |
| `transparent-localflux-logo.png` | Copy of repository-controlled `assets/brand/lf_logo.png`. |
| `localflux-banner.png` | Copy of repository-controlled `assets/store/trailer/localflux-store-trailer-thumbnail-en.png`. |
| `mountain-photo.png` | Copy of the prior editorial fixture derived from `tests/Samples/images/heic/primary.heic` with the bundled image runtime. |

All working files were staged under `C:\tmp\LocalFluxPngToIcoBlog\input` so screenshots exposed no Windows account name or personal profile path.

## Procedure

1. Record each PNG's bytes, dimensions, opacity, profile presence, and SHA-256 hash.
2. Launch the installed packaged app by app ID `Fuzzysense.Localflux_pc6sn726wzvrt!App`.
3. Add all three PNG files through the Windows file picker.
4. Select ICO and confirm that all queued routes read `PNG → ICO`.
5. Capture the waiting state.
6. Open Options and Advanced adjustments; verify Share safely Off, Original size, Auto width/height, aspect ratio Locked, and no ICO quality slider.
7. Capture the options state.
8. Convert and verify the completion banner reads `Conversion complete` and `3 files converted.`
9. Capture the completion state and per-row file-size results.
10. Open the output folder and capture File Explorer large- and small-icon views with the three ICO outputs selected.
11. Parse each ICO's ICONDIR header and entries; cross-check frame dimensions, channels, opacity, and profile presence with the retained bundled ImageMagick runtime.
12. Render the single stored frames at 256, 48, 32, and 16 pixels for visual inspection.
13. Re-hash the three source PNG files.

Windows UI interaction and screenshots used the Computer Use plugin. Screenshot payloads were saved as true PNG files before publication handoff.

## Results

| Fixture | Input bytes | Output bytes | UI result | Dimensions before/after | ICO frames | Bit depth | Opacity before/after | Profiles before/after |
| --- | ---: | ---: | ---: | --- | ---: | ---: | --- | --- |
| Transparent logo | 1,040,291 | 270,398 | 74% smaller | 2048 × 2048 / 256 × 256 | 1 | 32 | alpha / alpha | none / none |
| Non-square banner | 209,527 | 152,126 | 27% smaller | 1920 × 1080 / 256 × 144 | 1 | 32 | opaque / opaque | none / none |
| Mountain photo | 1,097,855 | 180,638 | 84% smaller | 1440 × 960 / 256 × 171 | 1 | 32 | opaque / opaque | EXIF / none |

The ICO headers reported reserved value `0`, type `1` (icon), and exactly one directory entry each. The image-resource sizes and offsets were internally consistent; every frame began at byte offset `22`.

The results match the build's default ICO execution path: with no explicit visual resize, the image is fitted inside `256x256` while preserving aspect ratio. The square input therefore became 256 × 256; non-square inputs retained their ratios.

### Transparency and rendering evidence

- The transparent source and its ICO output both reported `srgba` channels and non-opaque pixels.
- The banner and photo ICO frames were `srgba` containers whose pixels were fully opaque.
- File Explorer displayed all three ICOs in large- and small-icon views.
- The square logo remained recognizable at 16 pixels; banner text and photographic detail did not.
- The 48-, 32-, and 16-pixel comparison samples were scaled renders of the single stored frame, not additional ICO frames.

### Source preservation

The post-conversion source hashes matched the repository-controlled originals:

| Source | SHA-256 |
| --- | --- |
| `transparent-localflux-logo.png` | `053BF07FBCF7BEFE6368197F19AFB97677F47FEE8649026998CC198E6D2E2B63` |
| `localflux-banner.png` | `6C245EA2EF96AF470D20168827FC7EBC3098DDBC120988078BC5A66D3F05DB53` |
| `mountain-photo.png` | `5F8DB7F27D0A04E37F87E6A2B5BF3D920CD4347303D17D47D7DE70C18FC1C349` |

### Output hashes

| Output | SHA-256 |
| --- | --- |
| `transparent-localflux-logo_converted.ico` | `F0BA3DD5844B1192E1E88A231DF6DF2B8E4F360325CC5F8F0A092135AB065980` |
| `localflux-banner_converted.ico` | `1C9CDC6F6697BF51A1265DD3DE1E940F726E08330F4E8975D5C1122E75EBF12C` |
| `mountain-photo_converted.ico` | `D2C96279C65B37772651BBD648F8E8F0AE988BA6E6A90B9F495EBA715B6FBB37` |

## Scope and limitations

- This is editorial evidence for one retained x64 package, not clean-VM qualification or a support matrix.
- The test covers three valid static PNG files, not malformed PNGs, indexed-color edge cases, every profile type, or animated PNG input.
- File Explorer rendering is not application-packaging, installer, shortcut-assignment, or browser favicon validation.
- The profile check records presence only; it does not interpret individual EXIF fields.
- The visual review is not a color-management or accessibility certification.
- The article recommends a dedicated multi-frame workflow rather than implying that the tested one-frame output satisfies production app-icon requirements.

## Editorial package validation

- The article body contains `2,864` words and is valid UTF-8 with no replacement characters.
- The recorded body hash `2fb2d88aa9a6c94b` matches the first 16 lowercase hexadecimal characters of its SHA-256 digest.
- All `13` article media references map one-to-one to the `13` entries in `media-manifest.json`.
- Every manifest path exists and matches its recorded byte count and SHA-256 hash.
- All seven screenshot files have PNG signatures and their recorded dimensions; all three ICO samples report the recorded one-frame ICONDIR values.
- The draft contains no account-specific `C:\Users\...` profile path.
- The three primary technical references were reachable during the final check. The site-specific internal routes remain an integration-time check because the editorial package is not the website repository.
