gpt4 book ai didi

CGBitmapContextCreate不支持的参数组合错误

转载 作者:行者123 更新时间:2023-12-04 05:33:36 25 4
gpt4 key购买 nike

我正在读取图像文件并重新显示它而不进行任何更改,如下面的代码所示,但我收到此错误:

:CGBitmapContextCreate:不支持的参数组合:8个整数位/分量; 16 位/像素; 1-分量色彩空间; kCGImageAlphaPremultipliedLast; 3792 字节/行。

代码是:

CGImageRef sourceImage = theImage.image.CGImage;

CFDataRef theData;
theData = CGDataProviderCopyData(CGImageGetDataProvider(sourceImage));

UInt8 *pixelData = (UInt8 *) CFDataGetBytePtr(theData);

CGContextRef context;
context = CGBitmapContextCreate(pixelData,
CGImageGetWidth(sourceImage),
CGImageGetHeight(sourceImage),
8,
CGImageGetBytesPerRow(sourceImage),
CGImageGetColorSpace(sourceImage),
kCGImageAlphaPremultipliedLast);

CGImageRef newCGImage = CGBitmapContextCreateImage(context);
UIImage *newImage = [UIImage imageWithCGImage:newCGImage];

CGContextRelease(context);
CFRelease(theData);
CGImageRelease(newCGImage);

theImage.image = newImage;

在我最近升级到 Xcode 4.4 之前,这段代码一直运行良好。

根据 iPhone CGContextRef CGBitmapContextCreate unsupported parameter combination 中的建议,我将“CGImageGetColorSpace(sourceImage)”替换为“CGColorSpaceCreateDeviceRGB()”,但出现此错误:

:CGBitmapContextCreate:无效数据字节/行:对于 8 个整数位/分量、3 个分量、kCGImageAlphaPremultipliedLast,应至少为 15168。

然后,当我将“CGImageGetBytesPerRow(sourceImage)”替换为“CGImageGetBytesPerRow(sourceImage)*4”时,错误消失了,但 4X 缩小图像的副本并排显示。

有人遇到过这个问题吗?是否与 Xcode 4.4 升级有关?

谢谢!晒

最佳答案

通过使用 kCGImageAlphaNone 而不是 kCGImageAlphaPremultipliedLast 解决。
我仍然不明白为什么/如何将我的彩色图像变成灰度,以及为什么曾经工作的东西改变了它的行为,但至少我得到了一些显示。

关于CGBitmapContextCreate不支持的参数组合错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12268323/

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