问题是 :
在 iPhone7 上工作时,
我从中得到CGContextRef
,UIView
然后bitsPerPixel是64。因为我的.a只能与 bitsPerPixel 为 32 的传统 RGB 颜色空间位图缓冲区一起使用,
有人可以知道如何将CGContextRef
其色彩空间的颜色转换为tranditional CGContextRef
iPhone6 上的颜色吗?
问题是 :
在 iPhone7 上工作时,
我从中得到CGContextRef
,UIView
然后bitsPerPixel是64。因为我的.a只能与 bitsPerPixel 为 32 的传统 RGB 颜色空间位图缓冲区一起使用,
有人可以知道如何将CGContextRef
其色彩空间的颜色转换为tranditional CGContextRef
iPhone6 上的颜色吗?
解决方案如下:
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_9_3
-(void) layerWillDraw:(CALayer *)layer
{
if( [[[UIDevice currentDevice] systemVersion] floatValue] >= 10.0 )
{
NSString* format = layer.contentsFormat;
if( ![format isEqualToString:kCAContentsFormatRGBA8Uint] )
layer.contentsFormat = kCAContentsFormatRGBA8Uint;
}
}
#endif
将上面的代码添加到您将要绘制的视图中,然后从视图中获取的 CGContextRef 是传统的,就像在 iPhone6 上一样