2013-07-18 90 views
0

我使用UIBezierPath使用手指和触摸端方法在白色背景和黑色笔触中绘制线我正在使用CGGraphicsContext()裁剪图像,并且哪个工作正常。我想删除白色背景并将其设置为透明。我已经尝试了几个代码,而这些代码并不适合我。下面的代码使整个图像透明。除黑色笔画之外,任何人都可以帮助我使图像透明。提前致谢。对不起,如果问题已经被问到。在UIImageView中删除白色背景

-(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; 
} 

回答

3

您使用UIImageView显示UIImage只需要设置BACKGROUNDCOLOR到clearColor像波纹管......

 [yourImageView setBackgroundColor:[UIColor clearColor]]; 
+0

对不起。我的错。当我裁剪时,我使用了UIJpegRepresentation而不是UIPNGRepresentation。它解决了我的问题。 –