James Jackson-South
3d3f49fab8
Refine alpha conversion and AOT seeding
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.
3 days ago
James Jackson-South
37f534ea5d
Add ImageFrame visitor; use Buffer2D Size/Bounds + expose subregion extensions
3 months ago
Stefan Nikolei
5de26525fe
Convert CodeBase to collection Expressions
1 year ago
Stefan Nikolei
18b8b662e9
Use Target Type new only when apparent
1 year ago
Stefan Nikolei
57f5966fe7
use Explicit Types and Target Type new
1 year ago
James Jackson-South
fb47ce89b9
Always do debug save
1 year ago
James Jackson-South
c573228b09
Upstream fixes.
1 year ago
James Jackson-South
fdcd60200e
Begin migrating TiffMetadata
2 years ago
James Jackson-South
dfd983f17c
Update library to use new pixel API
3 years ago
James Jackson-South
66f444d200
Fix alpha blending and add tests
3 years ago
Poker
01caebd34a
Add UnitTest
3 years ago
James Jackson-South
4ef363df5d
Only compare a subset of frames.
3 years ago
James Jackson-South
66554cba67
Add ability to convert ICC profile on decode
4 years ago
James Jackson-South
c550af8c5a
Re-introduce IImageEncoder and split encoding pipelines.
4 years ago
James Jackson-South
1d994132ef
Re-introduce IImageDecoder and split decoding pipelines.
4 years ago
James Jackson-South
31def5c753
Replace IImageEncoder
4 years ago
James Jackson-South
19bdeccd11
Replace IImageDecoder
4 years ago
Brian Popow
be1ee582c5
Only compare first frame in old jpeg compression test
4 years ago
Ynse Hoornenborg
d42d8df88d
Introduce GetRequiredBufferLength method
4 years ago
James Jackson-South
0e9a066195
FS Namespaces and Implicit Global Usings
4 years ago
James Jackson-South
6fc84a82f6
Remove other obsolete conditions and warnings
4 years ago
James Jackson-South
1d9b20914f
Update TestImageExtensions.cs
4 years ago
James Jackson-South
1c2d1f42e2
Update tests and fix issues
4 years ago
James Jackson-South
97baeaf438
Update all files
4 years ago
Brian Popow
7d0838f97c
Avoid encoding the same image twice
4 years ago
Anton Firszov
58a23cdf1d
remove ArrayPoolMemoryAllocator from tests
5 years ago
Anton Firszov
9047fc971d
remove ImageFrame.GetPixelRowSpan
5 years ago
Anton Firszov
ff383c9eab
Buffer2D.GetRowSpan -> DangerousGetRowSpan
5 years ago
Anton Firszov
e1f15bc626
TryGetSinglePixelSpan -> DangerousTryGetSinglePixelMemory
5 years ago
Anton Firszov
a75f106392
Use shared ArrayPoolMemoryAllocator in tests
5 years ago
Anton Firszov
7c1a1afc61
UniformUnmanagedMemoryPoolMemoryAllocator
5 years ago
James Jackson-South
0791b576bd
Rename methods to use Dangerous prefix.
5 years ago
James Jackson-South
dc0982f186
Faster Linear Transforms ( #1591 )
* Attempt to use same weight generation algorithm as resize.
* tests pass
* Identical output
* Update LinearTransformKernelFactory{TResampler}.cs
* Use new low allocation iterator
* Migrate projective transforms.
* Optimizations
* Smaller kernel
* Fix sampling accuracy
* Finalize and update refs
* Revert unnecessary changes
* Remove enumerator
* Actually save output for debugging.
* Use custom test png encoder for reduced memory environments
* Convolution should use scaled vectors
* Update TestEnvironmentTests.cs
* Try using doubles
* Moar double precision
* Fix radius calculation
* Test if issue is SIMD related.
* Detect runtime to determine pipeline.
* Fix stack overflow
* fix condition
* Try simplified scalar run
* Simplify unpremultiply scalar
* Update Numerics.cs
* Fix runtime environment
* Update ImageSharp.csproj
* Duplicate the caller with scalar versions
* Update method name, exclude from coverage.
* Don't save output during coverage tests for perf.
* Update src/ImageSharp/Common/Helpers/RuntimeEnvironment.cs
Co-authored-by: Anton Firszov <antonfir@gmail.com>
Co-authored-by: Anton Firszov <antonfir@gmail.com>
5 years ago
Ildar Khayrutdinov
768ff6b582
Deep refactoring and improves for tiff classes.
In particular:
* Support multi framing.
* Using Metadata\Profiles\Exif\* types instead their duplicate tag types (moved to __obsolete directory).
* Implement useful Metadata classes.
* Add extensions.
* Test coverage.
6 years ago
James Jackson-South
874115bd0a
Update license
6 years ago
James Jackson-South
6183dd8c13
Update source license info.
6 years ago
James Jackson-South
a61baf27e9
Improve accessability of Span<T> methods. Fixes #1164
6 years ago
Sergio Pedri
8fb9c466d8
Renamed ParallelRowIterator.IterateRows to IterateRowIntervals
6 years ago
Sergio Pedri
94c4660d10
Switched pixel format type constraint to unmanaged
6 years ago
Anton Firszov
cf4d5a7457
fix JpegDecoder
7 years ago
Anton Firszov
ee93aa406d
InBytes->InBytesSqrt, InPixels->InPixelsSqrt
7 years ago
James Jackson-South
a42d21d121
Add bounded quantization and update namings.
7 years ago
Anton Firszov
1366168a6c
tests improvements:
- add failing tests for BmpDecoder
- more sophisticated and verbose buffer capacity configurator
7 years ago
James Jackson-South
f11a3a019b
Use Span<T> as buffer param
7 years ago
James Jackson-South
33bd5a920c
Fix arguments order and tests
7 years ago
Anton Firszov
f99ead64c2
fix JpegEncoder disco buffer handling
7 years ago
James Jackson-South
00dc2a8c98
Internalize, partially optimize and rename Action methods.
7 years ago
James Jackson-South
b62434cea9
Rename class and add native memory profiler
7 years ago
Anton Firszov
d2b99294f7
Decode Jpegs to non-contiguous buffers
7 years ago
Anton Firszov
35796da28c
Improve robustness of discontiguous Buffer2D
7 years ago