iOS中的自定义图像蒙版

时间:2011-05-04 08:25:46

标签: iphone ios calayer puzzle cashapelayer

我遇到了屏蔽图像的问题。我做游戏“拼图”,并且必须制作自定义图像。我发现并尝试了两种自定义裁剪方式:

  1. 使用CALayer.mask属性。
  2. 使用UIImage.mask属性。
  3. 在第一个选项中,我创建自定义路径,然后将其分配给CAShapeLayer.path属性,然后将CAShapeLayer分配给CALayer.mask属性。最后我有自定义裁剪图像。 在第二个选项中,我首先使用CGImageMaskCreate()方法(我使用之前创建的拼图的黑色蒙版图像),然后使用CGContextClipToMask()。 在任何一个选项中我都有性能问题(主要是当我将图像裁剪成16个谜题并在屏幕上拖动时)。

    是否有其他方法以自定义方式裁剪图像。 (我不知道如何解决性能问题)。 提前致谢。

3 个答案:

答案 0 :(得分:6)

答案 1 :(得分:0)

试试这个:

-(UIImage *)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect
{
    CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect);

    UIImage *cropped = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);

    return cropped;
}

...

UIImage *temp_image = [self imageByCropping:original_image toRect:clipping_rectangle];

答案 2 :(得分:0)

也许您应该考虑在具有alpha背景的新图像中绘制图像,并将当前背景透支。我的意思是:拼图内部的所有像素:正常颜色,拼图之外的所有像素=透明。然后尝试将其混合到新的背景或透支。

只需2美分。 :)