31#ifndef DOXYGEN_SHOULD_SKIP_THIS
33#import "ImageConversion.h"
35@implementation ImageConversion
42 CGColorSpaceRef colorSpace = CGImageGetColorSpace(image.CGImage);
44 if (CGColorSpaceGetModel(colorSpace) == kCGColorSpaceModelMonochrome) {
45 NSLog(
@"Input UIImage is grayscale");
46 vpImage<unsigned char> gray(image.size.height, image.size.width);
48 CGContextRef contextRef = CGBitmapContextCreate(gray.bitmap,
55 kCGBitmapByteOrderDefault);
57 CGContextDrawImage(contextRef, CGRectMake(0, 0, image.size.width, image.size.height), image.CGImage);
58 CGContextRelease(contextRef);
60 vpImage<vpRGBa>
color;
66 NSLog(
@"Input UIImage is color");
67 vpImage<vpRGBa>
color(image.size.height, image.size.width);
69 colorSpace = CGColorSpaceCreateDeviceRGB();
71 CGContextRef contextRef = CGBitmapContextCreate(
color.bitmap,
77 kCGImageAlphaNoneSkipLast |
78 kCGBitmapByteOrderDefault);
80 CGContextDrawImage(contextRef, CGRectMake(0, 0, image.size.width, image.size.height), image.CGImage);
81 CGContextRelease(contextRef);
90+ (
vpImage<
unsigned char>)vpImageGrayFromUIImage:(UIImage *)image
92 CGColorSpaceRef colorSpace = CGImageGetColorSpace(image.CGImage);
94 if (CGColorSpaceGetModel(colorSpace) == kCGColorSpaceModelMonochrome) {
95 NSLog(
@"Input UIImage is grayscale");
96 vpImage<unsigned char> gray(image.size.height, image.size.width);
98 CGContextRef contextRef = CGBitmapContextCreate(gray.bitmap,
105 kCGBitmapByteOrderDefault);
107 CGContextDrawImage(contextRef, CGRectMake(0, 0, image.size.width, image.size.height), image.CGImage);
108 CGContextRelease(contextRef);
112 NSLog(
@"Input UIImage is color");
113 vpImage<vpRGBa>
color(image.size.height, image.size.width);
115 colorSpace = CGColorSpaceCreateDeviceRGB();
117 CGContextRef contextRef = CGBitmapContextCreate(
color.bitmap,
121 4 * image.size.width,
123 kCGImageAlphaNoneSkipLast |
124 kCGBitmapByteOrderDefault);
126 CGContextDrawImage(contextRef, CGRectMake(0, 0, image.size.width, image.size.height), image.CGImage);
127 CGContextRelease(contextRef);
129 vpImage<unsigned char> gray;
139+ (UIImage *)UIImageFromVpImageColor:(const
vpImage<
vpRGBa> &)I
141 NSData *
data = [NSData dataWithBytes:I.bitmap length:I.getSize()*4];
142 CGColorSpaceRef colorSpace;
144 colorSpace = CGColorSpaceCreateDeviceRGB();
146 CGDataProviderRef provider = CGDataProviderCreateWithCFData((__bridge CFDataRef)data);
149 CGImageRef imageRef = CGImageCreate(I.
getWidth(),
155 kCGImageAlphaNone|kCGBitmapByteOrderDefault,
159 kCGRenderingIntentDefault
164 UIImage *finalImage = [UIImage imageWithCGImage:imageRef];
165 CGImageRelease(imageRef);
166 CGDataProviderRelease(provider);
167 CGColorSpaceRelease(colorSpace);
175+ (UIImage *)UIImageFromVpImageGray:(const
vpImage<
unsigned char> &)I
177 NSData *
data = [NSData dataWithBytes:I.bitmap length:I.getSize()];
178 CGColorSpaceRef colorSpace;
180 colorSpace = CGColorSpaceCreateDeviceGray();
182 CGDataProviderRef provider = CGDataProviderCreateWithCFData((__bridge CFDataRef)data);
185 CGImageRef imageRef = CGImageCreate(I.
getWidth(),
191 kCGImageAlphaNone|kCGBitmapByteOrderDefault,
195 kCGRenderingIntentDefault
200 UIImage *finalImage = [UIImage imageWithCGImage:imageRef];
201 CGImageRelease(imageRef);
202 CGDataProviderRelease(provider);
203 CGColorSpaceRelease(colorSpace);
static void convert(const vpImage< unsigned char > &src, vpImage< vpRGBa > &dest)
Definition of the vpImage class member functions.
unsigned int getWidth() const
unsigned int getHeight() const