В одном из моих приложений iOS я пытаюсь разрезать часть изображения с помощью CGImageMask
. Мне удалось маскировать изображение с помощью следующего кода:Как удалить прозрачную область 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') с прозрачной областью вокруг. Но я хочу избежать этой прозрачной области и обрезать изображение результата. Как я могу это достичь? Существует несколько масок, а маски маски не похожи на все. Здесь я прилагаю ссылочный образ обзора проблемы. Пожалуйста, помогите мне, друзья. Заранее спасибо.
Wow ... !!! Быстрый ответ. Большое спасибо. Он отлично работает. Я обязательно приму ваш ответ. Но SO позволяет мне делать это только через 4 минуты. лол. :) – Thampuran