# PhotoCraft Guide original practice pack

Use these original files to follow an image-editing tutorial or reproduce a
small PSD import test. Artwork and fixtures are dedicated under CC0 1.0; see
LICENSE.txt. No software, font files or third-party photos are bundled.

## Files and intended checks

| File | Size | Composition | Expected image | Intended check |
| --- | --- | --- | --- | --- |
| mountain-practice.png | 1200 × 800 | Pale sky, orange sun, layered teal mountains, sandy trail, five pine trees | The PNG itself | Open, add a separate text layer, save a native project, export PNG |
| mountain-practice.svg | 1200 × 800 | Editable geometric source of the mountain artwork | mountain-practice.png | Source artwork; vector and raster renderers can antialias edges differently |
| 01-pixel-layers.psd | 640 × 400 | Background, teal rectangle, orange circle; three separate normal-blend pixel layers | 01-pixel-layers-expected.png | Import appearance, layer count and ability to move/hide the circle separately |
| 02-text-layer.psd | 640 × 400 | Background and a real PSD type layer containing `EDIT ME`; 60 px ArialMT, point text at (60, 180) | 02-text-layer-expected.png | Import appearance and whether text remains editable; font substitution is a separate observation |
| 03-layer-mask.psd | 640 × 400 | Background and full-canvas teal fill with a separate circular grayscale mask; black outside, white inside | 03-layer-mask-expected.png | Import appearance, separate mask presence and mask edits |

All PSDs use RGB, 8 bits per channel, normal blending, RLE channel compression
and an embedded merged preview. The mask sample retains the entire teal fill:
the circle is produced by a mask, not by rasterizing away the outside pixels.
The text sample contains both editable type metadata and a cached raster image.

These are generated feature fixtures, **not Photoshop-authored documents**.
They do not test arbitrary customer files, CMYK, 16/32-bit images, adjustment
layers, smart objects, layer effects, embedded fonts or Photoshop save fidelity.
No PhotoCraft pass/fail result is asserted by this pack. App-specific results
must be recorded separately with the tested version, operating system and date.

## Reproduce from the site repository

Generation uses Pillow 11.3.0 and ag-psd 31.0.0. Independent checking uses
psd-tools 1.24.0. Install only these related dependencies in a temporary local
environment; none are required to serve the site.

```sh
python3 scripts/create-practice-assets.py
npm install --prefix /tmp/photocraft-practice-node ag-psd@31.0.0 --ignore-scripts
node practice/write-psd.cjs /tmp/photocraft-practice-node/node_modules/ag-psd
python3 practice/verify-psd.py
```

The Python artwork generator references the local macOS Arial.ttf to produce
the expected text raster. A different version of Arial or a substitute font can
change raster edge pixels. The actual generator environment and SHA-256 hashes
are listed in manifest.json. verification.json records structure checks by an
independent PSD parser; it is not an application compatibility result.

For a fair import test, first compare the appearance to the expected PNG, then
inspect the layers and attempt a feature edit. An app can display the embedded
merged preview while failing to preserve editable layer structure.
