カメラを使って人物の画像を撮影し、アプリで画像を編集したいと考えています。アプリには、さまざまな背景で人物を使用できるように、背景だけを残して人物を切り抜く (できればフリーハンドで切り抜く) 機能が必要です。クロッピング部分を行う方法がわかりません..親切にiosで私を助けてください
1412 次
3 に答える
2
あなたのニーズに合ったフリーハンドのトリミング ツールを作成しました。
于 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 に答える