Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - (UIImage *)testChangeImageToBase64String
- {
- UIImage *processedImage = [UIImage imageNamed:@"myFile.jpg"];
- // UIImage to unsigned char *
- CGImageRef imageRef = processedImage.CGImage;
- NSData *data = (NSData *) CFBridgingRelease(CGDataProviderCopyData(CGImageGetDataProvider(imageRef)));
- // encode data to Base64 NSString
- NSString *base64EncodedDataString = [data base64EncodedStringWithOptions:0];
- // create encoded std::string
- std::string encoded([base64EncodedDataString UTF8String]);
- // ***************************************************************************
- // This is where we call the server method and receive the bytes in a std::string
- std::string received = encoded;
- // ***************************************************************************
- // get Base64 encoded std::string into NSString
- NSString *base64EncodedCstring = [NSString stringWithCString:encoded.c_str() encoding:[NSString defaultCStringEncoding]];
- // NSData from the Base64 encoded std::string
- NSData *nsdataFromBase64String = [[NSData alloc]initWithBase64EncodedString:base64EncodedCstring options:0];
- CGImageRef base64ImageRef = [newCGImageRefFromString:nsdataFromBase64String];
- UIImage *imageFromImageRef = [UIImage imageWithCGImage: base64ImageRef];
- return newImage;
- }
- UIImage *newImage = [[UIImage alloc] initWithData:nsdataFromBase64String];
- // NOTE: have not tested if this even compiles -- consider it pseudocode.
- CGImageRef image;
- CFDataRef bridgedData;
- CGDataProviderRef dataProvider;
- CGColorSpaceRef colorSpace;
- CGBitmapInfo infoFlags = kCGImageAlphaFirst; // ARGB
- // Get a color space
- colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);
- // Assuming the decoded data is only pixel data
- bridgedData = (__bridge CFDataRef)decodedData;
- dataProvider = CGDataProviderCreateWithCFData(bridgedData);
- // Given size_t width, height which you should already have somehow
- image = CGImageCreate(
- width, height, /* bpc */ 8, /* bpp */ 32, /* pitch */ width * 4,
- colorSpace, infoFlags,
- dataProvider, /* decode array */ NULL, /* interpolate? */ TRUE,
- kCGRenderingIntentDefault /* adjust intent according to use */
- );
- // Release things the image took ownership of.
- CGDataProviderRelease(dataProvider);
- CGColorSpaceRelease(colorSpace);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement