我在Quartz / Core-graphics工作。我正在尝试创建一个黑白,每像素1b的图形上下文。
我目前有一个带有灰度图像的CGImageRef(真的是黑白)。我想将它绘制成一个黑白的BitmapContext,这样我就可以得到位图并用CCITT-group 4压缩它。(出于某种原因,Quartz不会让你以LZW以外的任何TIFF格式保存)。
所以,我需要每像素1位数据。我认为绘制到1bpp上下文会这样做。但是,它不会让我创建上下文:
context = CGBitmapContextCreate (data,
pixelsWide,
pixelsHigh,
1,
pixelsWide/8,
CGColorSpaceCreateDeviceGray(),
kCGImageAlphaNone
);
是否有小于灰色的色彩空间?
答案 0 :(得分:2)
即使支持1位位图,如果pixelsWide
不是8的倍数,那么每行的字节数也不是整数:例如,如果你的图像是12像素宽,那么每行的字节数是一个半。你的除法表达式将每行截断为一个字节,这是错误的。
但是,如果支持1位位图,which they aren't。