cocoa-touch - <错误> : CGImageCreate: invalid image bits/pixel: 8

标签 cocoa-touch opencv uikit

我在 Xcode 中使用 opencv,我得到了从 IplImage 转换为 UIImage 的方法:

-(UIImage *)UIImageFromIplImage:(IplImage *)image {
NSLog(@"IplImage (%d, %d) %d bits by %d channels, %d bytes/row %s", image->width, image->height, image->depth, image->nChannels, image->widthStep, image->channelSeq);

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
NSData *data = [NSData dataWithBytes:image->imageData length:image->imageSize];
CGDataProviderRef provider = CGDataProviderCreateWithCFData((__bridge  CFDataRef)data);
CGImageRef imageRef = CGImageCreate(image->width, image->height,
                         image->depth, image->depth * image->nChannels, image->widthStep,
colorSpace, kCGImageAlphaPremultipliedLast|kCGBitmapByteOrderDefault,
provider, NULL, false, kCGRenderingIntentDefault);
UIImage *ret = [UIImage imageWithCGImage:imageRef scale:1.0 orientation:UIImageOrientationUp];
CGImageRelease(imageRef);
CGDataProviderRelease(provider);
CGColorSpaceRelease(colorSpace);
return ret;
}

问题是,当我将任何图像传递给此方法(png,jpg,tiff)时,会出现此错误 :CGImageCreate:无效图像位/像素:8,请帮助我解决该错误,谢谢。

最佳答案

如果您的图像是灰色的(不是 RGBA),请使用此:

colorSpace = CGColorSpaceCreateDeviceGray();

关于cocoa-touch - <错误> : CGImageCreate: invalid image bits/pixel: 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10298165/

相关文章:

ios - UISlider setThumbImage,拇指图像在 iOS7 上显示不正确

iphone - 重用Cocos2d CocosNodes

objective-c - 在登录页面获取用户 ID

objective-c - 在 iPad 上旋转时如何阻止模态视图消失?

ios - 如何检查 iOS 中的 View 层次结构?

ios - 每个星期二的本地通知重复间隔不起作用..我错过了什么?

c++ - OpenCV - 关闭图像显示窗口

python - 尝试创建自定义 Docker 镜像,但在 RUN 步骤期间被问到问题

c++ - 带有 CV_SHAPE_ELLIPSE 的 OpenCV cv::getStructuringElement 产生一个黑色方 block

ios - 在 Swift 中将参数传递给选择器