首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ios不支持的颜色空间错误

Ios不支持的颜色空间错误
EN

Stack Overflow用户
提问于 2015-02-14 19:17:25
回答 1查看 746关注 0票数 0

当我试图加载某些纹理到我的opengl应用程序,我得到一个不受支持的颜色空间错误,似乎压缩的.png文件。

如果我右键单击并检查失败的纹理,它们具有以下属性。

颜色配置文件: sRGB 2.1 61966-2.1

当.png被压缩时,它似乎得到了这个属性。我真的想要这个功能,因为它减少了纹理大小~50%。

这是我的纹理加载代码:

代码语言:javascript
复制
-(GLubyte *) generatePixelDataFromImage: (UIImage *) pic{

    GLubyte *pixelData = (GLubyte *) calloc(width * height *4, sizeof(GLubyte));
    CGColorSpaceRef imageCS = CGImageGetColorSpace(pic.CGImage);

    CGBitmapInfo bitmapInfo = (CGBitmapInfo) kCGImageAlphaPremultipliedLast;
    CGContextRef gc = CGBitmapContextCreate(pixelData, width, height, 8, width*4, imageCS, bitmapInfo);

    CGContextDrawImage(gc, CGRectMake(0, 0, width, height), pic.CGImage);
    CGContextRelease(gc);
    return pixelData;
}

以下是错误:

错误: CGBitmapContextCreate:不支持的颜色空间。2月14日13:11:59 Garretts-iPhone myApp712 : CGContextDrawImage:无效上下文0x0。这是一个严重的错误。此应用程序或它使用的库使用无效上下文,从而导致系统稳定性和可靠性的总体下降。这个通知是礼貌的:请解决这个问题。这将成为一个致命的错误,在即将更新。

是否存在以编程方式转换纹理,同时仍然有减少存储空间的好处?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-14 19:21:19

来自https://developer.apple.com/library/ios/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_color/dq_color.html#//apple_ref/doc/uid/TP30001066-CH205-TPXREF128

重要: iOS不支持与设备无关的或通用的颜色空间。iOS应用程序必须使用设备颜色空间。

你试过只使用CGColorSpaceCreateDeviceRGB作为颜色空间吗?看上去还好吗?

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28519274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档