在UIImageView中删除白色背景

时间:2013-07-18 05:31:21

标签: iphone crop transparent uigraphicscontext

我正在使用UIBezierPath使用手指在白色背景和黑色笔划中绘制线条和触摸结束方法我使用CGGraphicsContext()裁剪图像并且工作正常。我想删除白色背景,使其透明。我已经尝试了几个代码,这对我不起作用。以下代码使整个图像透明。任何人都可以帮助我使图像透明,除了黑色笔划。提前致谢。对不起,如果问题已经提出。

-(UIImage*) makeTransparent : (UIImage*) viewImage
{
    CGImageRef rawImageRef = viewImage.CGImage;
    const float colorMasking[6] = {255, 255, 255, 255, 255, 255};
    UIGraphicsBeginImageContext(viewImage.size);
    CGImageRef maskedImageRef = CGImageCreateWithMaskingColors(rawImageRef, colorMasking);
    CGContextTranslateCTM(UIGraphicsGetCurrentContext(), 0.0, viewImage.size.height);
    CGContextScaleCTM(UIGraphicsGetCurrentContext(), 1.0, -1.0);

    CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, viewImage.size.width, viewImage.size.height), maskedImageRef);
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    CGImageRelease(maskedImageRef);
    UIGraphicsEndImageContext();
    return newImage;
}

1 个答案:

答案 0 :(得分:3)

您使用UIImageView进行展示UIImage,然后将背景颜色设置为clearColor,如下所示......

        [yourImageView setBackgroundColor:[UIColor clearColor]];