0

Имея проблемы с CGBitmapContextCreate и получать:GBitmapContextCreate: неподдерживаемый сочетание параметров

Ошибка: неподдерживаемый описание пикселя - 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 бит на компонент. Не уверен, почему я получаю ошибку. Я видел несколько других сообщений о том, как правильно это сделать, но большинство из них связано с редактированием изображений, а не с созданием новых, поэтому некоторые из параметров могут быть взяты из исходного изображения.

ответ

0

Если вы используете поплавок компонент, то, конечно, нужно сказать, что бит на компонент является количество битов в обращении:

size_t bitsPerComponent = 8 * sizeof (float); 

Другими словами, 8 бит на пиксель = 1 поплавок на пиксель, поскольку поплавок составляет 32 бита.

+0

Спасибо! но теперь я просто получаю Unsupported pixel description - 1 компонент, 32 бит на компонент, 32 бит на пиксель – richy

Смежные вопросы