2012-01-12 41 views
0

新图像我有一个掩模和在其上应用掩码来获取图像的一部分的图像。 问题是当我在图像上应用该遮罩时,遮罩所产生的图像与原始图像的大小相同。尽管未遮罩部分是透明的。我需要的是只有原始图像的蒙版部分的图像,我不希望透明部分在图像中。以便所得到的图像将具有较小的尺寸并且只包含蒙版部分。创建仅掩蔽部分(不包括透明区域)以及新的大小

感谢

+0

你能有一些屏幕截图什么解释?我所得到的是你试图应用剪裁或其他东西。 – Sarah 2012-01-12 12:08:44

+0

@Sarah。我试图做的和作物类似,但形状不规则,因为蒙版形状将会不规则。我有一个背景图片(image1)(大小:400x400)和一个面具(不规则形状 - 拼图))。当我在背景图像上应用蒙版时,我想要的只是一个拼图形状的图像。我不想要透明背景,我们在蒙版应用程序上获得。应用蒙版后,我现在得到的是与原始大小相同的图像图像(400x400)与透明背景。我想将这个蒙版部分保存在一个新的图像中(具有它自己的尺寸) – user1085093 2012-01-12 12:15:25

回答

0

您可以:

  1. 图像绘制到一个新的CGBitmapContext实际尺寸,为位图的缓冲区。从位图CGBitmapContextCreate
  2. 读α值来确定透明边界。您将必须确定如何根据您指定的像素数据来读取它。
  3. 创建一个新的CGBitmapContext提供外部缓冲器,使用一些变化或组合:a)一种象素偏移,b)中的偏移每行的字节,或c)手动移动该位图的数据(在适当位置,以减少存储器的使用,如果可能的话)。 CGBitmapContextCreate
  4. 创建一个从第二位图上下文CGImageCGBitmapContextCreateImage
+0

实际上是iphone开发的新手。我用这篇文章来掩盖我的形象:[链接](http://iphonedevelopertips.com/cocoa/how-to-mask-an-image.html)。你可以使用一些代码或者我应该改变的代码到本教程中指定的代码 – user1085093 2012-01-12 12:34:10

+0

我已经用您需要的CG调用更新了答案。处理位图数据是非常普遍的,一旦你知道它的布局如何变化。不幸的是,一个完整的样本/解释有点长。等待 - 也许别人会用这种细节来回答。 – justin 2012-01-12 12:42:31

+0

谢谢你的回答。其实现在我已经对我的代码做了一些修改。我不再需要不规则形状的遮罩区域。现在即使是矩形的裁剪图像也足够了。有没有更简单的方法使用我可以从原始图像 – user1085093 2012-01-13 09:20:33