Add support for CalGray and CalRGB colorspaces

This commit is contained in:
Kasper Frank
2021-05-27 12:54:11 +02:00
parent 2fa003730a
commit da821e27e1
20 changed files with 1195 additions and 35 deletions

View File

@@ -16,7 +16,8 @@
var isColorSpaceSupported =
actualColorSpace == ColorSpace.DeviceGray || actualColorSpace == ColorSpace.DeviceRGB
|| actualColorSpace == ColorSpace.DeviceCMYK;
|| actualColorSpace == ColorSpace.DeviceCMYK || actualColorSpace == ColorSpace.CalGray
|| actualColorSpace == ColorSpace.CalRGB;
if (!isColorSpaceSupported || !image.TryGetBytes(out var bytesPure))
{
@@ -28,7 +29,11 @@
bytesPure = ColorSpaceDetailsByteConverter.Convert(image.ColorSpaceDetails, bytesPure,
image.BitsPerComponent, image.WidthInSamples, image.HeightInSamples);
var numberOfComponents = actualColorSpace == ColorSpace.DeviceCMYK ? 4 : actualColorSpace == ColorSpace.DeviceRGB ? 3 : 1;
var numberOfComponents =
actualColorSpace == ColorSpace.DeviceCMYK ? 4 :
actualColorSpace == ColorSpace.DeviceRGB ? 3 :
actualColorSpace == ColorSpace.CalRGB ? 3 : 1;
var is3Byte = numberOfComponents == 3;
var builder = PngBuilder.Create(image.WidthInSamples, image.HeightInSamples, false);