2012-10-22 67 views
2

用戶是否可以圍繞想要裁切的UIImageView的位繪製虛線(圍成一圈),然後再將UIImageView調整爲這些點的大小?這是一個有點像Photoshop中的套索/選取框效果:如何將UIImageView裁切爲自定義形狀

enter image description here

+0

啊,那我怎麼能做到這一點?我怎樣才能使選框外的位透明?那麼首先,我想我的問題是 - 我怎樣才能從圖紙中獲得選取框內部的CGRect?我目前有一個用CGContext設置的UIKit圖形視圖等。 –

+0

謝謝@NSPostWhenIdle! –

回答

3

更新:由於iOS的8.x中的UIImageView提供maskView屬性。只需準備一些不透明像素的圖像,使用該遮罩圖像創建另一個圖像視圖,並將該遮罩圖像視圖設置爲遮罩視圖。蒙版圖像中的不透明像素將顯示在底層圖像中。

UIImageView *maskView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"somemask"]]; 
    maskView.frame = imageView.bounds; 
    imageView.maskView = maskView; 
    // imageView will be masked by maskView 

原來的答案

有相當多的事,但這裏有一個高層次的輪廓:

  1. 創建一個空的圖像,這將成爲一個面具
  2. 建立一個路徑來自用戶輸入的圖像
  3. 填充路徑將其變成面具
  4. 將面罩應用到imageview的圖像

創建圖像:這裏的一個簡單的想法是將黑色圖像與您的項目一起發送。它的大小應該與用戶可以選擇的最大區域相匹配。將圖像讀入內存(UIImage imageNamed:),並通過調用UIGraphicsBeginImageContext將其設置爲繪圖上下文。

創建路徑:(see apple docs)。當用戶開始撫摸區域時,請撥打CGContextBeginPath,然後按照用戶手勢操作,對觸摸進行採樣並通過重複調用CGContextMoveToPoint作爲touchesMoved來添加小片段。

創建蒙版:要將路徑轉換爲蒙版,您需要黑色背景和路徑填充白色。如果你從黑色圖像開始,你只需要做填充。請參閱相同的蘋果指南。

最後,你將這個面具應用到你的imageView的圖像。 Here's a decent reference

+0

嗨,先生,請幫助我我的項目臉形狀圖像作物嘗試許多圖書館,但不完美的圖像作物讓我知道任何想法.. –

+0

@RamaniHitesh - 答案是有點過時了。看看改進的技術是否有助於你。 – danh

+0

好吧,先生,不要擔心...任何想法,請建議我 –

0

這隻回答你的問題的一部分,我想,但這裏是一個example如何繪製和動畫虛線(即行軍螞蟻效果)。