Nope, I'm definitely looking at pixel data. But I'll try the generic color space. I don't know how it chooses device color space when it's created absent any particular display-associated context.
> On Nov 17, 2017, at 06:54 , Steve Christensen <puns...@mac.com> wrote: > > It sounds like you're looking at image file data rather than buffers of pixel > data. If so then I wouldn't make the assumption that the encoded bytes in two > PNG files will be identical for identical images. Depending on how flexible > the file format is, then particular parts of the encoded image could be > written to different locations in the two files. It seems more reasonable to > draw the images to compare into CGBitmapContexts configured identically and > them compare the active portions (i.e., width * bytesPerPixel <= bytesPerRow) > of the bitmap buffers. > > As for color space to use, Apple recommends "that you use calibrated (or > generic) color spaces instead of device color spaces. The colors in device > color spaces can vary widely from device to device, whereas calibrated color > spaces usually result in a reasonably accurate color." > (https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/DrawColor/Tasks/UsingColorSpaces.html) > > Steve > > >> On Nov 16, 2017, at 6:31 PM, Rick Mann <rm...@latencyzero.com> wrote: >> >> I'm trying to write a unit test for some code I wrote that generates one >> image from another. In the main app, the source data comes from Open CV as a >> buffer of 3 byte-per-pixel elements. My code generates a CGImage. In the >> unit test, I load a saved version of one of those images from a PNG file to >> UIImage, get at the buffer, pass it to my code, and then compare the result >> to a saved version of that same output. >> >> The saved version is a PNG. I load that, and then get the data buffer using >> >> let fiData = fi.dataProvider?.data as Data? >> >> I do a similar thing with the generated CGImage. Then I compare the two >> buffers, byte by byte. They are similar, but contain differences (sometimes >> more than I would expect). But if I save both as PNG and look at them in >> Preview they look identical. >> >> My guess is something's happening somewhere with color correction. In my >> code, I make a CG(bitmap)Context, specifying device RGB color space (should >> that be generic?). I don't really know what happens to the PNGs I save and >> load. >> >> Is there a way to ensure the bytes in the buffer are compressed and >> decompressed exactly as written? > -- Rick Mann rm...@latencyzero.com _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com