2013-02-13 56 views
0

我想拍攝一個人使用相機的圖像,然後在應用程序中編輯圖像。該應用程序應該有一個功能來裁剪(最好是徒手剪裁)只離開背景的人,以便我能夠使用不同背景的人。我不知道如何做裁剪部分..請幫助我在ios在ios的徒手剪裁

回答

0

我已經使用此代碼手工裁剪圖像。我用它仍然UIView不與相機圖像,但它將工作任何類型的UIViews。這裏startX,startY,endX和endY是toucheBegan,touchMove和touchEnd函數中的整數值。希望這會對你有所幫助。

感謝

UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.opaque, 0.0); 
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
     if(self.isRetina){ 
     contentRectToCrop = CGRectMake(startX*2, startY*2, (endX*2-startX*2), endY*2-startY*2); 
     }else{ 
     contentRectToCrop = CGRectMake(startX, startY, (endX-startX), endY-startY); 
       } 
     CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], contentRectToCrop); 
    UIImage *croppedImage = [UIImage imageWithCGImage:imageRef]; 
+0

我試過,但裁剪圖像的分辨率是太可憐了比較原始的圖像,沒有任何解決方案好心幫我 – dineshprasanna 2013-02-14 10:43:52

0

是的,你沒有使用Retina顯示屏的正確檢查。以上函數以像素爲單位計算裁剪後的圖像。我最初面臨同樣的問題,但是這個代碼解決了我的問題,請使用此功能和以前的代碼,問題將得到解決。

-(BOOL)isRetina 
{ 
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0) { 
     return YES; 
    } 
    return NO; 

} 

感謝

+0

先生,我使用的iPad 1和iPad 2的,這些都不是視網膜的分辨率,但圖像出現模糊 – dineshprasanna 2013-02-14 12:28:41