3.3 IImagePipeline + ImagePipeline
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -103,7 +103,7 @@ Each type lives in `src/FrameProcessor/Domain/`. Tests in `tests/FrameProcessor.
|
||||
### [x] 3.2 `DitheringRegistry`
|
||||
- `IReadOnlyDictionary<DitherAlgorithm, IDither>` mapping each enum to the corresponding ImageSharp `KnownDitherings.*`.
|
||||
|
||||
### [ ] 3.3 `IImagePipeline` + `ImagePipeline`
|
||||
### [x] 3.3 `IImagePipeline` + `ImagePipeline`
|
||||
- Single method: `byte[] Process(Stream input, Frame frame)`.
|
||||
- Steps (`SPEC.md` §3.2): decode → resize (cover/center-crop to oriented resolution) → dither against display palette → remap pixels display→device → rotate 90° CW if portrait → encode indexed PNG (`PngColorType.Palette`, smallest bit depth fitting the palette, `PaletteQuantizer(deviceColors)`).
|
||||
- Output dimensions always match the frame's *declared* `width × height` regardless of orientation.
|
||||
|
||||
Reference in New Issue
Block a user