使用CGOmage的CGImage的像素值我使用CGContextDrawImage(像这里描述: How to get pixel data from a UIImage (Cocoa Touch) or CGImage (Core Graphics)?)。唯一的区别是我创建了128个bpp浮点组件上下文,而不是通常的32个bpp上下文。从CGImageSource获取的源CGImage使用选项kCGImageSourceShouldAllowFloat创建。这样我希望能够访问与我的位图上下文的颜色空间匹配的浮动像素值,并在进一步的图像处理中使用它们。问题是生成的图像数据似乎失去了动态范围。它可以在阴影,平原蓝天区域看到。它们变得异形并且缺乏细节。一些调查显示CGContextDrawImage中出现问题(源CGImage包含完整的动态范围,通过CGImageDestination保存它证明了这一点),并且在CGContextDrawImage上下文内容变得后化之后。当使用CGContextDrawImage,float CGBitmapContext
经过一番深入调查,我发现这一点: http://lists.apple.com/archives/quartz-dev/2007/mar/msg00026.html 这使我得出结论的问题是不是在我的代码,但在核心显卡或者说是预期的行为。
我的问题是:使用核心图形从图像中获取浮点数据的正确方法是什么?