我尝试将黑色白色UIImage转换为IplImage,但是从控制台提供这些。什么不可以做?
CGBitmapContextCreate: unsupported parameter combination: 8 integer bits/component; 16 bits/pixel; 1-component color space; kCGImageAlphaPremultipliedLast; 84 bytes/row.
CGContextDrawImage: invalid context 0x0.
notaImage = [UIImage imageWithCGImage:drawImage];
//UIImageWriteToSavedPhotosAlbum(notaImage, self, @selector(imageSavedToPhotosAlbum: didFinishSavingWithError: contextInfo:), nil);
vec_iphone.push_back(notaImage);
CGImageRef i_Ref = notaImage.CGImage;
CGColorSpaceRef color_S = CGColorSpaceCreateDeviceGray();
// Creating temporal IplImage for drawing
IplImage *nota_img = cvCreateImage(
cvSize(notaImage.size.width,notaImage.size.height), IPL_DEPTH_8U, 1
);
// Creating CGContext for temporal IplImage
CGContextRef c_Ref = CGBitmapContextCreate(
nota_img->imageData, nota_img->width, nota_img->height,
nota_img->depth, nota_img->widthStep,
color_S, kCGImageAlphaPremultipliedLast|kCGBitmapByteOrderDefault
);
// Drawing CGImage to CGContext
CGContextDrawImage(
c_Ref,
CGRectMake(0, 0, notaImage.size.width, notaImage.size.height),
i_Ref
);
//
vec_images.push_back(nota_img);
CGContextRelease(c_Ref);
CGColorSpaceRelease(color_S);
CGImageRelease(i_Ref);
答案 0 :(得分:1)
由于您的输入图像为灰色,因此您的上下文格式不包含任何Alpha通道,因此使用kCGImageAlphaPremultipliedLast
不正确。请改为kCGImageAlphaNone
。