Skip to content

Black pixels do not load correctly from CMYK JPEGs #8

@ghelyar

Description

@ghelyar

Version: https://www.nuget.org/packages/BitMiracle.LibJpeg.NET/1.5.324

I created a PNG with 16x16 blocks of Red, Green, Blue, White, Cyan, Magenta, Yellow, Black:
Colours

Then converted it to a CMYK JPEG with ImageMagick:

convert test.png -colorspace cmyk test_cmyk.jpg

test_cmyk

I then used the following code to convert it to a bitmap with BitMiracle LibJpeg.Net:

using (var bitmapStream = File.Create("test.bmp"))
using (var jpegStream = File.OpenRead("test_cmyk.jpg"))
using (var jpeg = new BitMiracle.LibJpeg.JpegImage(jpegStream))
{
    jpeg.WriteBitmap(bitmapStream);
}

This results in the black pixels being loaded as transparent (RGBA of 0xffffff00) rather than black (0x000000ff). I verified this with jpeg.GetRow(y).GetAt(x).GetComponent(c) where y=31, x=63, c=(0, 1, 2, 3) -> (255, 255, 255, 0). This appears white when the alpha channel is stripped, rather than black, which is how everything else displays it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions