uiimage to iplimage
I try to convert black white UIImage to IplImage, but gives these from console. What could ıt be done?
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);
As your input image is gray, your context format does not contain any alpha channel, therefore using kCGImageAlphaPremultipliedLast
is not correct. Try kCGImageAlphaNone
instead.
精彩评论