创建一个只有新尺寸的蒙版部分(没有透明区域)的新图像

时间:2012-01-12 11:59:57

标签: objective-c xcode uiimage image-manipulation masking

我有一个蒙版和一个应用蒙版的图像来获取该图像的一部分。 问题是当我在图像上应用该蒙版时,来自蒙版的结果图像与原始图像的大小相同。尽管未蒙展的部分是透明的。我需要的是一张只有原始图像的蒙面部分的图像,我不希望透明部分出现在图像中。这样得到的图像尺寸较小,只包含遮蔽部分。

由于

1 个答案:

答案 0 :(得分:0)

你可以:

  1. 将图像绘制为实际大小的新CGBitmapContext,为位图提供缓冲区。 CGBitmapContextCreate
  2. 从位图读取Alpha值以确定透明边界。您必须根据您指定的像素数据确定如何阅读此内容。
  3. 创建一个新的CGBitmapContext提供外部缓冲区,使用一些变体或组合:a)像素偏移,b)每行偏移字节,或c)手动移动位图的数据(到位以减少内存)用法,如果可能的话)。 CGBitmapContextCreate
  4. 从第二个位图上下文创建CGImageCGBitmapContextCreateImage