2011-05-04 76 views
5

我有掩蓋圖像的問題。我做遊戲「拼圖」,並且必須製作自定義圖像。我發現並試圖定製種植的2路:iOS中的自定義圖像蒙版

  1. 使用CALayer.mask財產。
  2. 使用UIImage.mask屬性。

在第一個選項創建我的自定義路徑,然後將其分配給CAShapeLayer.path財產,然後分配給CAShapeLayer財產CALayer.mask。最後我有自定義裁剪圖像。 在第二個選項中,我首先使用CGImageMaskCreate()方法(我使用之前創建的黑色面具拼圖圖像),然後使用CGContextClipToMask()。 在任何選項中我都有性能問題(主要是當我將圖像裁剪成16個謎題並拖動到屏幕上時)。

是否有任何其他方法以自定義的方式裁剪圖像。 (我不知道如何解決性能問題)。 在此先感謝。

+0

你問的是不裁剪,它被稱爲掩蔽。你已經多次聲明你想掩蓋非矩形區域;裁剪幾乎總是指矩形區域。您可能需要相應地調整問題。 – 2012-05-04 13:34:14

+0

是的,你說得對。 – akozin 2012-06-10 18:40:53

回答

7
+0

感謝您的回答,Tim van Elsloo。但是這個鏈接包含了關於裁剪矩形圖像的手冊。但我需要一個習慣。不是矩形。像這樣:http://imageshack.us/f/856/hard131.png – akozin 2011-05-04 10:42:43

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]; 
+0

感謝您的回答,馬丁。但是你的源代碼只能裁剪矩形區域。但我不需要它。我需要將矩形圖像裁剪成這個:http://imageshack.us/f/856/hard131.png。 – akozin 2011-05-05 07:35:08

0

也許你應該考慮在alpha背景的新圖像中繪製圖像並透視當前背景。我的意思是:拼圖塊內的所有像素:正常顏色,拼圖塊外的所有像素=透明。然後嘗試將其融入新的背景或透支。

只是我2美分。 :)