【问题标题】:Black and White graphics context黑白图形上下文
【发布时间】:2010-10-19 23:09:24
【问题描述】:

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

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

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

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

是否有比灰色更小的色彩空间?

【问题讨论】:

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


    【解决方案1】:

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

    但前提是支持 1 位位图,which they aren't

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-02
    • 2019-01-20
    • 1970-01-01
    • 2014-06-06
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多