I've been struggling with this for a couple of hours, and I'm hoping someone else has some insight. I'm looking for a way to get the average RGB color of a 1x1 UIImage. So far I've created a CGImageRef from the UIImage, but I'm really new to C开发者_如何学GooreGraphics, so I'm not sure where to go from there. Any help is appreciated. Thanks!
If you have a CGImage, you get the data by calling
CGDataProviderRef CGImageGetDataProvider (
CGImageRef image
);
CGImage doc
Then you can copy the data
CFDataRef CGDataProviderCopyData(
CGDataProviderRef provider
);
CGDataProvider doc
Since CFData
is the same as NSData
you can cast it and retrieve the bytes
- (const void *)bytes
CFData doc
NSData doc
Now you have the raw bytes, you can do anything with them, use
CGImageAlphaInfo CGImageGetAlphaInfo (
CGImageRef image
);
CGBitmapInfo CGImageGetBitmapInfo (
CGImageRef image
);
to get information how is the image data stored in the bytes you got.
精彩评论