黑白图形上下文

时间:2009-04-16 20:28:04

标签: c++ c macos core-graphics cgbitmapcontext

我在Quartz / Core-graphics工作。我正在尝试创建一个黑白,每像素1b的图形上下文。

我目前有一个带有灰度图像的CGImageRef(真的是黑白)。我想将它绘制成一个黑白的BitmapContext,这样我就可以得到位图并用CCITT-group 4压缩它。(出于某种原因,Quartz不会让你以LZW以外的任何TIFF格式保存)。

所以,我需要每像素1位数据。我认为绘制到1bpp上下文会这样做。但是,它不会让我创建上下文:

    context = CGBitmapContextCreate (data,
                pixelsWide,
                pixelsHigh,
                1,
                pixelsWide/8,
                CGColorSpaceCreateDeviceGray(),
                kCGImageAlphaNone
                                 );

是否有小于灰色的色彩空间?

1 个答案:

答案 0 :(得分:2)

即使支持1位位图,如果pixelsWide不是8的倍数,那么每行的字节数也不是整数:例如,如果你的图像是12像素宽,那么每行的字节数是一个半。你的除法表达式将每行截断为一个字节,这是错误的。

但是,如果支持1位位图,which they aren't