Skip to content

Black pixels do not load correctly from CMYK JPEGs #8

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