배경이 UIImage이고 사용자 정의 모양을 사용하여 배경 UIImage를 잘라내어이 배경 이미지가 사용자 정의 모양을 통해 "나타납니다". 예를 들어, 달 모양의 사용자 정의 모양이 있으며, 배경 이미지가 달 모양의 부분에만 표시되기를 바랍니다.사용자 정의 모양으로 UIImage 자르기
- (UIImage *)createImageFromImage:(UIImage *)image
withMaskImage:(UIImage *)mask {
CGImageRef imageRef = image.CGImage;
CGImageRef maskRef = mask.CGImage;
CGImageRef imageMask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef),
NULL,
YES);
CGImageRef maskedReference = CGImageCreateWithMask(imageRef, imageMask);
CGImageRelease(imageMask);
UIImage *maskedImage = [UIImage imageWithCGImage:maskedReference];
CGImageRelease(maskedReference);
return maskedImage;
}
그러나이 결과는 처럼 보이는, 그리고 그것으로 몇 가지 문제가 있습니다 : 다른 답변에 따라
, 정말 같은 이미지에 마스크를 부과하는 것을 시도하고있다 은- 달이 100 * 100인데 이상한 비율로 늘어났습니다
- 내 목표는 이미지가 달을 통과하는 것입니다. 그러나 현재 달이오고있는 흰색 모양입니다. 이미지
자르기 문제를 해결할 수있는 방법에 대한 아이디어는 많이 알려 드리겠습니다. 감사!
이 라이브러리는 모든 사용자 정의 모양에 사용할 수 있습니다. 그냥 당신의 경로를 그리면 자른 이미지가 나옵니다. https://www.cocoacontrols.com/controls/mdimagecroper –