GBitmapContextCreate:不支持的参数组合

Posted

技术标签:

【中文标题】GBitmapContextCreate:不支持的参数组合【英文标题】:GBitmapContextCreate: unsupported parameter combination 【发布时间】:2011-12-14 12:40:24 【问题描述】:

CGBitmapContextCreate 和获取有问题:

错误:不支持的像素描述 - 1 个分量,每分量 8 位,每像素 8 位

使用此代码:

float *bitmap = (float*)malloc(sizeof(float) * width * height);

// fill with floats

CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceGray();
size_t bitsPerComponent = 8;
size_t bytesPerRow = sizeof(float)*width;
CGContextRef context = CGBitmapContextCreate(bitmap, width, height, bitsPerComponent, bytesPerRow, colorspace
                                             , kCGImageAlphaNone| kCGBitmapFloatComponents | kCGBitmapByteOrder32Little);

根据: http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_context/dq_context.html

每个像素 8 位,每个组件 8 位。不知道为什么我会收到错误消息。我在这里看到过其他一些关于如何正确处理的帖子,但大多数都是编辑图像而不是创建新图像,因此可以从原始图像中获取一些设置。

【问题讨论】:

【参考方案1】:

如果您使用的是浮点组件,那么您肯定需要说每个组件的位数是浮点数:

size_t bitsPerComponent = 8 * sizeof (float);

换句话说,每个像素 8 位!= 每个像素 1 个浮点数,因为浮点数是 32 位。

【讨论】:

谢谢!但现在我只是得到不支持的像素描述 - 1 个组件,每组件 32 位,每像素 32 位

以上是关于GBitmapContextCreate:不支持的参数组合的主要内容,如果未能解决你的问题,请参考以下文章

为啥我配置的PHP5不支持MySQL

为啥我配置的PHP5不支持MySQL

不支持的硬件是啥情况

不支持的 NSSortDescriptor(不支持比较器块)

为啥chrome还不支持断点续传

javascript对象不支持的属性或方法