我有一个PNG图像具有不受支持的位图图形上下文像素格式.每当我尝试调整图像大小时,都会CGBitmapContextCreate()以不支持的格式进行扼流
我收到以下错误(格式错误,以方便阅读):
CGBitmapContextCreate: unsupported parameter combination:
8 integer bits/component;
32 bits/pixel;
3-component colorspace;
kCGImageAlphaLast;
1344 bytes/row.
Run Code Online (Sandbox Code Playgroud)
在支持的像素格式列表绝对不支持这种组合.看来我需要重绘图像并将alpha通道信息移动到kCGImageAlphaPremultipliedFirst或kCGImageAlphaPremultipliedLast.
我不知道该怎么做.
PNG文件没有任何异常,并且没有损坏.它在所有其他环境中工作得很好.我偶然遇到这个错误,但显然我的用户可能有类似格式的文件,所以我必须检查我的应用程序的导入图像并纠正这个问题.
我正在尝试创建一个8位灰度上下文,如下所示:
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
CGContextRef context = CGBitmapContextCreate(
data, m_width, m_height, 8, m_width, colorSpace,
kCGBitmapByteOrder32Little|kCGImageAlphaNone);
Run Code Online (Sandbox Code Playgroud)
但是我有以下错误:
CGBitmapContextCreate: unsupported parameter combination:
8 integer bits/component; 8 bits/pixel; 1-component color space;
kCGImageAlphaNone; 1936 bytes/row.
Run Code Online (Sandbox Code Playgroud)
为什么这种组合不受支持?