2013-07-18 2 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

당신은

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

죄송합니다 ... 디스플레이 그럼 그냥 우는 소리 같은 clearColor에 backgroundColor로 설정 UIImage에 대한 UIImageView를 사용합니다. 내 실수. 내가자를 때 UIPNGRepresentation 대신 UIJpegRepresentation을 사용했습니다. 내 문제가 해결되었습니다. –