从UIGraphicsGetImageFromCurrentImageContext调用CGImageSourceCreateWithDataProvider时的kCGImageStatusUnknownType

时间:2013-02-04 20:08:54

标签: ios ios4 core-graphics cgimage cgimagesource

我正在尝试从CGDataProviderRef创建CGImageSourceRef。 CGDataProviderRef来自使用UIGraphicsGetImageFromCurrentImageContext创建的UIImage。当我这样做并检查我的图像源的状态时,它返回kCGImageStatusUnknownType。

我试过用kCGImageSourceTypeIdentifierHint给它一个提示,但无济于事。

有谁知道如何创建这个CGImageSource?

谢谢!

1 个答案:

答案 0 :(得分:2)

您告诉消息来源您正在为其提供PNG数据,但事实并非如此。您从the CGImageGetDataProvider function获得的数据提供商提供raw pixel data,而不是某种外部格式的数据。

CGImageSource的目的是将某些外部格式(如PNG)的数据解码为CGImages。它无法处理像素数据;如果您有像素数据,则只需create the CGImage from it directly。当然,鉴于你已经有了最终的图像,我不确定你为什么要尝试从任何类型的数据再次创建

如果您想要随后生成一些外部数据(例如,在您发布此图像之后,可能在另一个过程中)由CGImageSource重新加载,请使用CGImageDestination