gpt4 book ai didi

ios - CGBitmapContextCreate : unsupported parameter combination

转载 作者:可可西里 更新时间:2023-11-01 03:41:58 25 4
gpt4 key购买 nike

我正在尝试创建一个 8 位灰度上下文,如下所示:

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
CGContextRef context = CGBitmapContextCreate(
data, m_width, m_height, 8, m_width, colorSpace,
kCGBitmapByteOrder32Little|kCGImageAlphaNone);

但是我有以下错误:

CGBitmapContextCreate: unsupported parameter combination: 
8 integer bits/component; 8 bits/pixel; 1-component color space;
kCGImageAlphaNone; 1936 bytes/row.

为什么不支持这种组合?

最佳答案

可在“Quartz 2D Programming Guide”中找到支持的每分量位数、每像素位数、颜色空间组合

正如 Nikolai 所写,将 kCGBitmapByteOrder32Little 与 kCGImageAlphaNone 一起使用对于灰色空间没有意义(并且不受支持)。

现在,根据每行的字节数和高度,您需要为数据参数中的 CGBitmapContextCreate 提供足够的分配内存。您没有显示设置高度和为数据分配内存的代码,但我想您的问题就在那里。

此外,根据 CGBitmapContextCreate,您实际上不需要自己分配内存(从 iOS 4.0 开始)。文档,您可以将 NULL 作为数据传递,以便为您分配内存。稍后您仍然可以通过使用 CGBitmapContextGetData 请求它来访问数据指针。

另一个注意事项是,将 m_width 作为 bytesPerRow 传递仅在这种情况下是正确的(每个像素 1 个字节的灰色空间),但可能不是好的做法。如果您为数据传递 NULL,您也可以在此处传递 0 以自动为您计算。

关于ios - CGBitmapContextCreate : unsupported parameter combination,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18057967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com