ColorKit icon indicating copy to clipboard operation
ColorKit copied to clipboard

Fix pixel color calculation for different data formats

Open mishpajz opened this issue 2 years ago • 0 comments

Change the way pixel data is obtained from image in dominantColorFrequencies.

Previously, raw image data was retrieved from CGImage and assumed to be in a RGBA8 format (meaning each pixel has 4 bytes, with R, G, B and A values in this order). However, this is not guaranteed, and if the image was in a different format, the algorithm returned wrong values.

This PR adds conversion from CGImage to CIImage, and uses CIContext to render the image to a bitmap buffer. This ensures that the image data is always in RGBA8 format.

mishpajz avatar Sep 19 '23 14:09 mishpajz