在很多时候我们需要对一张图片进行裁剪,尽管CALayer已经为我们提供了很多方便,可以轻易实现圆形,圆角矩形,甚至直角+圆角的矩形,然而在一些特殊情况下,需要对图片进行不规则形状(比如半个⭐️)裁剪的时候,就需要一些手段来进行图片处理了。
1.首先准备好原图
当然如果用CALayer来画path的话,任何形状都是可以画的,但是必须把每一个轮廓都写一遍,而描述这些轮廓,会随着图形复杂度而相应的繁琐,更糟糕的是,如果换一个形状,就要重新进行一次复杂的描述,那简直是噩梦。
所以在这里我们推荐一种简单的办法:Mask 切割
这个办法的原理很简单,需要先准备一张切割形状的非半透明图片,通过与被切割图片求交集的方式进行切割,得到的结果就是切割形状的图片了。比如你要把一幅图片切割成半⭐️形的,就准备一张半⭐️形状的mask图,图中需要有一个半⭐️的非透明部分,其余部分透明,然后把希望裁剪的图片以mask图作为模版裁剪,得到的就是想要的结果了.
+ =
来看看代码:
UIImage* rawImage = [UIImage imageNamed:
@"photo.png
”
];
2.初始化绘图环境
CGSize size = image.size;
CGSize size = image.size;