私は自分のiPhoneアプリでUIBezierPathのような近いパスを使って画像をトリミングしたいと思っています。私はそれが可能な長方形を使用して知っているが、私はさまざまな形の作物をしたい。私はタッチを使って1つの図形を作ってそのイメージを切り抜きたいと思うようにします。 提案やヘルプ。 ありがとうございます。UIBezierPathのようなクローズパスを使って画像をトリミングしたい。それはiPhoneアプリケーションで可能ですか?
5
A
答えて
2
シェイプレイヤーで画像をトリミングすることができます。これを行うには、新しいイメージの境界線として使用されるパスを作成する必要があります。このquestionをご覧ください。
CALayer* contentLayer = [CALayer layer];
[contentLayer setFrame:CGRectMake(0, 0, 80, 80)];
CAShapeLayer* mask = [CAShapeLayer layer];
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 10, 10);
CGPathAddLineToPoint(path, NULL, 10, 80);
CGPathAddLineToPoint(path, NULL, 80, 80);
CGPathAddLineToPoint(path, NULL, 80, 10);
mask.path = path;
[contentLayer setContents:(id)[[UIImage imageNamed:@"image.png"] CGImage]];
[contentLayer setMask:mask];
[[self layer]addSublayer:contentLayer];
このようなものです。
+0
Vitaliy1は、ここにコードを貼り付けて、シェイプレイヤーで画像を切り取る方法を教えてください..... –
1
これはマスクを使用して行うことができます。 CGImageMaskCreate
を使用してマスクを作成できます。
あなたは例が必要な場合:コードを使用するには
Any idea why this image masking code does not work?
http://mobiledevelopertips.com/cocoa/how-to-mask-an-image.html
0
//:
-(UIImage *)croppedImage
{
UIImage *myImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[self.bezierPath closePath];
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 0.0);
_b_image = self.bg_imageview.image;
CGSize imageSize = _b_image.size;
CGRect imageRect = CGRectMake(0, 0, imageSize.width, imageSize.height);
UIGraphicsBeginImageContextWithOptions(imageSize, NO, [[UIScreen mainScreen] scale]);
[self.bezierPath addClip];
[_b_image drawInRect:imageRect];
UIImage *croppedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return croppedImage;}
関連する問題
- 1. は、それは私が好き破線を描画するUIBezierPath()を使用して知っているUIBezierPath
- 2. NSDictionaryのUIBezierPath - それは可能ですか?
- 3. 前後の画像を使って調整可能な画像
- 4. ARCoreを使ってVuforiaのような画像を追跡することは可能ですか?
- 5. iphone SDKのカスタマイズ可能な画像
- 6. 「実画像」を使用してクリック可能なボタンを作るにはどうすればいいですか
- 7. UIBezierPathを使用してイメージをトリミングする方法は?
- 8. iPhone Webアプリケーション:Window.locationが機能していないようです。
- 9. 画像をキャプチャしてトリミングし、イオン2の火災基地にアップロードすることは可能ですか?
- 10. 画像は、それをライトボックスが機能するようになりましたようでハイテクのxml
- 11. JavaScriptを使って画像URLで画像サイズを取得することは可能ですか?
- 12. ネイティブ機能を使用していないときにPhoneGapをトリミングすることは可能ですか?
- 13. PHPを使用してオンザフライで画像をトリミングする
- 14. 画像をトリミングするためにcaffeスライスレイヤーを追加するにはどうすればよいですか?
- 15. iPhoneのALAssetによって返された画像と一致する画像
- 16. CSS縦サイズを変更し、私はそうのようにスクロール可能なdiv要素でラップトップとボトムの間隔で画像を、持っているスクロールバーに
- 17. このタイプのレイアウトを作成するためにどのように、私はそれが可能であるか分からないのか、この上の画像のように画像ビューでオーバーラップツールバーを作成していないアンドロイド
- 18. Dockerの画像でNginxを使ってアプリケーションに接続するにはどうすればいいですか?
- 19. ダーツを使用してプラグイン可能なアプリケーションを作成するにはどうすればよいですか?
- 20. Hibernateで可能ですか?そしてどうやって?
- 21. 何がこのコードで間違っている、vb.net2005のpictureboxx1の画像をトリミングできないのですか?
- 22. 画像をトリミングし、スプライトシートから画像をトリミングし、そのが動作していないとのPictureBoxにそれを置くが、しようとしているピクチャボックスに
- 23. アンドロイドのiphoneのような下部Tabviewは可能ですか?
- 24. WordPress - トリミングされていない元の画像を使用する
- 25. Xamarin.Forms - クリック可能な画像でカスタムビューを作成するにはどうすればよいですか?
- 26. UIBezierPathを使用して背景画像をマスクする
- 27. アンドロイドのクリック可能な画像ビューをクリックしたときに背景や画像ソースを変更するにはどうすればよいですか?
- 28. iPhoneでドラッグ可能なオブジェクトまたはコントロールを作成するにはどうすればよいですか?
- 29. フラッシュ可能な画像をどのようにパッドするのですか?
- 30. cell.imageview.imageでUITableViewsの画像をトリミングするにはどうすればよいですか?
私が前にやったことはありませんが、私はあなたが魔法使いのマスクを使用する必要があるとします。このappleの記事を読んでみてください。[Quartz 2D Programming Guide](https://developer.apple.com/library/ios/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_images/dq_images.html#//apple_ref/doc/uid/TP30001066- CH212-CJBDIJEE)。たぶんbezierPathをプログラムまたはユーザーのやりとりによって透明なイメージを作成し、このイメージを元のイメージのマスクとして使用することができます。 – Gabriele
マスキングは得られる方法です。この短い例を見てください。http://mobiledevelopertips.com/cocoa/how-to-mask-an-image.html – msg