我在Quartz/Core-graphics中工作。我正在尝试创建一个黑白的,每像素1b的图形上下文。
我目前有一个灰度图像的CGImageRef (实际上是黑白的)。我想把它画成一个黑白的BitmapContext,这样我就可以把位图拿出来,并用CCITT-Group4压缩它。(出于某种原因,Quartz不允许你以除LZW以外的任何TIFF格式保存)。
因此,我需要每像素1位的数据。我认为,在1bpp的上下文中绘制就可以做到这一点。但是,它不会让我使用以下命令创建上下文:
context = CGBitmapContextCreate (data,
pixelsWide,
pixelsHigh,
1,
pixelsWide/8,
CGColorSpaceCreateDeviceGray(),
kCGImageAlphaNone
);有没有比灰色更小的颜色空间?
发布于 2009-04-16 20:52:56
即使支持1位位图,如果pixelsWide不是8的倍数,则每行的字节数也不是整数:例如,如果图像的宽度为12像素,则每行的字节数为1.5。除法表达式会将其截断为每行一个字节,这是错误的。
但这是在支持1位位图的情况下,which they aren't。
https://stackoverflow.com/questions/757913
复制相似问题