2014-11-11 3 views
3

내 iOS 응용 프로그램 중 하나에서 CGImageMask을 사용하여 이미지의 일부분을 잘라내려고합니다. I는 다음 코드 이미지를 마스킹 성공 하였다 :마스킹 후 UIImageView의 투명 영역을 제거하는 방법은 무엇입니까?

- (UIImage *)maskImage:(UIImage *)referenceImage withMask:(UIImage *)maskImage { 

    CGImageRef maskRef = maskImage.CGImage; 

    CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef), 
             CGImageGetHeight(maskRef), 
             CGImageGetBitsPerComponent(maskRef), 
             CGImageGetBitsPerPixel(maskRef), 
             CGImageGetBytesPerRow(maskRef), 
             CGImageGetDataProvider(maskRef), NULL, false); 

    CGImageRef masked = CGImageCreateWithMask([referenceImage CGImage], mask); 
    return [UIImage imageWithCGImage:masked]; 
} 

그래서, 내 이미지가 될 것이다

myImageView.image = [self maskImage:[UIImage imageNamed:@"image.png"] 
          withMask:[UIImage imageNamed:@"mask.png"]]; 

문제점 : 출력 화상은 기준 화상의 크기가 동일하다 ('image.png') 주위에 투명한 영역이 있습니다. 하지만 그 투명한 영역을 피하고 결과 이미지를 자르고 싶습니다. 이것을 어떻게 할 수 있습니까? 마스크가 여러 개 있으며 마스크 프레임이 모두 비슷하지 않습니다. 여기에 문제 개요의 참조 이미지를 첨부하고 있습니다. 친구 좀 도와주세요. 미리 감사드립니다.

enter image description here

답변

5

조회 자동 크로 핑있는 UIImage. 이렇게하면 투명성있는 것을 잘라낼 수 있습니다.

How do I autocrop a UIImage?

+0

와우 ... !!! 빠른 대답. 고맙습니다. 그것은 위대한 일을하고 있습니다. 나는 분명히 당신의 대답을 받아 들일 것입니다. 하지만 SO는 4 분 후에 만 ​​그렇게 할 수 있습니다. 롤. :) – Thampuran

관련 문제