У меня есть два изображения, одно из которых является прозрачным с некоторыми краями/границами, а другое - фактическим изображением. Я хочу объединить их обоих.Маскирование прозрачного изображения с другим фактическим изображением в iOS
Я использовал следующий код для маскировки и объединить изображение:
- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
// create a bitmap graphics context the size of the image
CGFloat dim = MIN(image.size.width, image.size.height);
CGSize size = CGSizeMake(dim, dim);
UIGraphicsBeginImageContextWithOptions(size, NO, .0);
UIBezierPath *bezierPath = [UIBezierPath bezierPathWithOvalInRect:(CGRect){ CGPointZero, size }];
[bezierPath fill];
[bezierPath addClip];
CGPoint offset = CGPointMake((dim - image.size.width) * 0.5, (dim - image.size.height) * 0.5);
[image drawInRect:(CGRect){ offset, image.size }];
UIImage *ret = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return ret;
}
Результат:
В результате изображение, границы изображения, используемого в качестве маски, отсутствует. Может кто-нибудь, пожалуйста, помогите мне с этим?
Вы никогда не рисуете maskImage в своем контексте или каким-либо образом используете maskImage в своем методе ... –
есть ли способ достичь. Я не знаю, как это сделать. Я только что взял код откуда-то. – user3772344