2012-01-28 22 views
35

Kırpma kutusu için boyutları "taşıma ve ölçeklendirme" boyutları nasıl belirler?UIImagePickerController için boyutları ayarlama "kırpma ve ölçeklendirme" kırpma kutusu

Temel olarak "CropRect" için sabit bir genişlik ve yükseklik ayarlamak ve kullanıcının görüntünün istediği gibi bu kutuya sığacak şekilde hareket etmesini ve ölçeklendirmesini istiyorum.

Bunu nasıl yapacağını bilen var mı? (Veya UIImagePickerController ile bile mümkün ise)

Teşekkürler!

+0

Birisi hızlı bir şekilde aynı çözüme sahip olabilir mi? –

cevap

33

Maalesef UIImagePickerController ile mümkün değil. Önerdiğim çözüm, görüntü seçici için düzenlemeyi devre dışı bırakmak ve kendiniz halletmek. Örneğin, görüntüyü kaydırılabilir, yakınlaştırılabilir bir görüntü görünümünde yerleştirdim. Görüntü görünümünün üstünde, kullanıcının gördüğü ürün işaretini çeken sabit bir konum "kırpma kılavuzu görünümü" bulunur. Kılavuz görünümünün görünür rect (tutulacak parça) ve kenar genişlikleri (atılacak parça) için özellikleri varsayarak kırpma dikdörtgenini bu şekilde alabilirsiniz. Gerçek kırpma işlemini yapmak için UIImage+Resize kategorisini kullanabilirsiniz.

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

Mükemmel cevap. Teşekkürler! –

+11

Lütfen örnek projeyi veya başka bir şey sağlayabilir misiniz? –

+0

@Marc. Hızlı bir şekilde nasıl kullanacağımı nasıl yönlendirebilirim? –

3

Ming Yang manuel kırpmaya bir çözümdür. https://github.com/myang-git/iOS-Image-Crop-View

Dikdörtgende görüntünün gerekli bölümünü sığdırmak için kullanıcının kaydırabileceği veya sürükleyebileceği dikdörtgen bir çerçeve sunar. Lütfen bu çözümün sorulan sorunun tersini yaptığını unutmayın - dikdörtgen boyutunun değişmesine izin verir, ancak sonunda istenen sonucu getirir.

Objective-C'de kodlanmıştır. Swift'de kod yazmanız ya da Objective-C kodunu Swift koduyla birleştirmek için bir köprüleme başlığı oluşturmak zorunda kalabilirsiniz.

+1

daha iyi bulduğum başka bir kitaplık var. –