2012-01-28 118 views
35

「移動和縮放屏幕」如何確定其裁剪框的尺寸?設置UIImagePickerController「移動和縮放」裁剪框的尺寸

基本上我想爲「CropRect」設置一個固定的寬度和高度,並讓用戶按照需要移動和縮放他的圖像以適應該框。

有誰知道如何做到這一點? (或者如果它甚至可以用UIImagePickerController)

謝謝!

+0

有人可以有相同的解決方案迅速? – 2018-02-28 10:18:30

回答

33

不幸的是,UIImagePickerController不可能。我建議的解決方案是禁用圖像選擇器的編輯並自己處理。例如,我把圖像放在一個可滾動的,可縮放的圖像視圖中。在圖像視圖的頂部是固定位置「裁剪指南視圖」,該位置繪製用戶看到的裁剪指示符。假設指南視圖具有可見矩形(要保留的部分)和邊緣寬度(要放棄的部分)的屬性,則可以像這樣獲取裁剪矩形。您可以使用UIImage+Resize類別進行實際裁剪。

CGRect cropGuide = self.cropGuideView.visibleRect; 
UIEdgeInsets edges = self.cropGuideView.edgeWidths; 
CGPoint cropGuideOffset = self.cropScrollView.contentOffset; 

CGPoint origin = CGPointMake(cropGuideOffset.x + edges.left, cropGuideOffset.y + edges.top); 
CGSize size = cropGuide.size; 
CGRect crop = { origin, size }; 

crop.origin.x = crop.origin.x/self.cropScrollView.zoomScale; 
crop.origin.y = crop.origin.y/self.cropScrollView.zoomScale; 
crop.size.width = crop.size.width/self.cropScrollView.zoomScale; 
crop.size.height = crop.size.height/self.cropScrollView.zoomScale; 

photo = [photo croppedImage:crop]; 
+0

完美答案。謝謝! – 2012-02-01 22:49:02

+11

您可以請提供示例項目或其他任何東西。 – 2013-09-16 09:20:28

+0

@Marc。你怎麼能指導我如何使用swift – 2017-01-09 09:39:09

3

這裏是明陽手工裁剪的解決方案。 https://github.com/myang-git/iOS-Image-Crop-View

它提供了一個矩形框架,用戶可以滑動或拖動矩形框架以適應矩形中所需的圖像部分。請注意,這個解決方案與問題相反 - 讓矩形大小變化,但最終會帶來理想的結果。

它在Objective-C中編碼。您可能需要在Swift中編寫它,或者只需構建一個橋接頭來將Objective-C代碼與Swift代碼連接起來。

+1

比我找到的任何其他庫更好。 – 2015-11-19 11:58:55