Use exact zero determinant checks in `TransformUtilities.IsDegenerate` for `Matrix3x2` and `Matrix4x4` instead of epsilon-based near-zero detection, preventing valid transforms from being treated as degenerate during extreme downscales. Added a regression test for issue #3156 to verify resizing large square images (1024/2048) to 1x1 succeeds and preserves the expected pixel.
Introduces `RgbaHalf` and `RgbaHalfP` plus bulk pixel-operation support, updates AOT seeding, and routes EXR decoding through the new scaled conversions. Also fixes scaled/native range handling for half, SNORM, and signed integer pixel formats, and expands tests for the new layouts and edge cases.
Introduce explicit associated/unassociated pixel conversion APIs across `IPixel` and `PixelOperations`, and rework associated-alpha operations to use representation-aware bulk hooks. Update pixel implementations, converters, blenders, and generated code to consistently apply `Premultiply`/`UnPremultiply` semantics, plus SIMD-backed conversion paths for half and signed formats.
Fix codec and processing behavior where alpha handling was incorrect or lossy (notably TIFF/EXR decode/encode, convolution/resize/filter/normalization/dithering paths), and add targeted tests for these cases. Expand AOT compiler roots (including EXR and additional pixel/processor coverage), add a new public API test project for pixel-operations extensibility, and add broad alpha-representation and quantization regression coverage.
KernelSamplingMap.CorrectBorder sliced the offset span by
radius * kernelSize, so bounds narrower than the kernel radius threw
ArgumentOutOfRangeException (GaussianBlur of a 130x8 region with
sigma 10, for example), and bounds exactly equal to the radius let
Bounce offsets escape the sampling range by folding an overshoot of a
full extent to min - 1.
Route bounds no larger than the radius through an exact per-mode
correction that folds each offset into range: clamp for Repeat,
periodic reflection for Mirror and Bounce, and true modulo for Wrap.
The single-pass corrections are unchanged for larger bounds.