0

カメラを使って人物の画像を撮影し、アプリで画像を編集したいと考えています。アプリには、さまざまな背景で人物を使用できるように、背景だけを残して人物を切り抜く (できればフリーハンドで切り抜く) 機能が必要です。クロッピング部分を行う方法がわかりません..親切にiosで私を助けてください

4

3 に答える 3

2

あなたのニーズに合ったフリーハンドのトリミング ツールを作成しました。

https://github.com/nicholjs/BFCropInterface

于 2013-02-28T19:50:48.023 に答える
0

はい、Retina ディスプレイの正しいチェックを使用していません。上記の関数は、トリミングされた画像をピクセル単位で計算します。最初は同じ問題に直面しましたが、このコードは私の問題を解決し、この関数を以前のコードで使用すると問題が解決されます。

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

}

ありがとう

于 2013-02-14T11:38:53.510 に答える
0

このコードを使用して、画像を手でトリミングしました。カメラ画像ではなくUIViewに使用しましたが、あらゆるタイプのUIViewで機能します。ここで、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];
于 2013-02-13T13:13:08.867 に答える