遇到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);
每像素8位,每个组件8位。不知道为什么我会得到错误。我在这里看到了其他一些关于正确使用的帖子,但大多数都是编辑图像而不是创建新图像,所以可以从原始图像中获取一些设置。
答案 0 :(得分:0)
如果您正在使用float组件,那么您肯定需要说每个组件的位数是浮点数中的位数:
size_t bitsPerComponent = 8 * sizeof (float);
换句话说,每像素8位!=每像素1个浮点数,因为浮点数为32位。