I use the following method to get a decompressed uiimage from file system.
However the UIImageView is colored as red when I turn on the color blended
layer, even though the UIImageView is set to Opaque.

The images on file system don't have alpha channel. I tried set
CGContextSetAlpha(bitmapContext, 1), but still has blended layer.

Anyone know how to remove alpha channel when using CGContextDrawImage?


- (UIImage *)decompressedImage
{
    CGImageRef imageRef = self.CGImage;
    CGRect rect = CGRectMake(0.f, 0.f, CGImageGetWidth(imageRef),
CGImageGetHeight(imageRef));
    CGContextRef bitmapContext = CGBitmapContextCreate(NULL,
                                                       rect.size.width,
                                                       rect.size.height,

 CGImageGetBitsPerComponent(imageRef),

 CGImageGetBytesPerRow(imageRef),

 CGImageGetColorSpace(imageRef),

 kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Little
                                                       );
    // kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Little are the
bit flags required
    //  so that the main thread doesn't have any conversions to do.

    CGContextDrawImage(bitmapContext, rect, imageRef);

    CGImageRef decompressedImageRef =
CGBitmapContextCreateImage(bitmapContext);
    UIImage* decompressedImage = [UIImage
imageWithCGImage:decompressedImageRef
                                                     scale:[[UIScreen
mainScreen] scale]

 orientation:UIImageOrientationUp];
    CGImageRelease(decompressedImageRef);
    CGContextRelease(bitmapContext);

    return decompressedImage;
}
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to