ios中的徒手裁剪

时间:2013-02-13 12:53:12

标签: ios uiimageview uiimage

我想拍摄一个人使用相机的图像,然后在应用程序中编辑图像。该应用程序应具有裁剪(最好是徒手裁剪)仅离开背景的人的功能,以便我能够使用不同背景的人。我不知道怎么做裁剪部分..请帮助我在ios

3 个答案:

答案 0 :(得分:2)

我创建了一个适合您需要的手绘裁剪工具。

https://github.com/nicholjs/BFCropInterface

答案 1 :(得分: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];

答案 2 :(得分:0)

是的,您没有使用正确的视网膜显示检查。上述函数以像素为单位计算裁剪后的图像。我最初面临同样的问题,但这段代码解决了我的问题,请使用此功能与以前的代码,问题将得到解决。

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

}

由于