我想知道是否有人可以指出我正确的方向解决这个问题。
我有一个用户创建的UIBezierPath
,其中有几个点是由用户触摸产生的。
我可以使用[myPath fill];
函数在沼泽标准的UIView上创建形状。
我理想的做法是使用路径为UIImage创建剪贴蒙版 - 可能是UiImageView
?
我尝试将我的UIView更改为UIImageView
,然后将该功能更改为[myPath addClip];
但由于某种原因它无效。
答案 0 :(得分:1)
您需要使用kCGBlendModeDestinationIn创建图形上下文,绘制图像并绘制蒙版。像这样:
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0); // size is a CGSize of the result you want
[image drawInRect:imageRect]; // image is the UIImage you want to clip, imageRect is the rect in the context where you want your image
[mask drawInRect:rect blendMode:kCGBlendModeDestinationIn alpha:1.0]; // mask is a UIImage containing the mask you drew, rect is the rect in the context where you want your mask - could match imageRect above
UIImage* uiImage = UIGraphicsGetImageFromCurrentImageContext();