1、
- (UIImage*)imageFromRGB565:(void*)rawData width:(int)width height:(int)height { const size_t bufferLength = width * height * 2; NSData *data = [NSData dataWithBytes:rawData length:bufferLength]; CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)data); // Creating CGImage from cv::Mat CGImageRef imageRef = CGImageCreate(width, //width height, //height 5, //bits per component 16, //bits per pixel width * 2, //bytesPerRow colorSpace, //colorspace kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder16Little,// bitmap info provider, //CGDataProviderRef NULL, //decode false, //should interpolate kCGRenderingIntentDefault //intent ); // Getting UIImage from CGImage UIImage *finalImage = [UIImage imageWithCGImage:imageRef]; CGImageRelease(imageRef); CGDataProviderRelease(provider); CGColorSpaceRelease(colorSpace); return finalImage; }
2、CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef newContext = CGBitmapContextCreate(rgbbuffer,
width, height, 8,
width * bytes_per_pix,
colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst);
CGImageRef frame = CGBitmapContextCreateImage(newContext);
self.imageview.image = [UIImage imageWithCGImage:frame];
CGImageRelease(frame);
CGContextRelease(newContext);
CGColorSpaceRelease(colorSpace);