私はInstagramのようなカメラを作成しようとしています。ここでユーザーはボックスを見ることができ、画像はそのボックスに切り取られます。何らかの理由で、カメラは画面の一番下までは行かず、最後の近くで切り取られます。私はまた、その広場の中にイメージが320x320になるようにイメージを切り取るにはどうしたらよいでしょうか?iOSカスタムUIImagePickerControllerカメラの四角形への切り取り
15
A
答えて
38
はここ(UIImagePickerController
を再実装せずに)それを行うための最も簡単な方法です。まず、オーバーレイを使用して、カメラフィールドを正方形にします。あなたが戻ってUIImagePickerController
から画像を取得した後、このような何かの正方形にそれをトリミングし、
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.sourceType = source;
if (source == UIImagePickerControllerSourceTypeCamera) {
//Create camera overlay
CGRect f = imagePickerController.view.bounds;
f.size.height -= imagePickerController.navigationBar.bounds.size.height;
CGFloat barHeight = (f.size.height - f.size.width)/2;
UIGraphicsBeginImageContext(f.size);
[[UIColor colorWithWhite:0 alpha:.5] set];
UIRectFillUsingBlendMode(CGRectMake(0, 0, f.size.width, barHeight), kCGBlendModeNormal);
UIRectFillUsingBlendMode(CGRectMake(0, f.size.height - barHeight, f.size.width, barHeight), kCGBlendModeNormal);
UIImage *overlayImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *overlayIV = [[UIImageView alloc] initWithFrame:f];
overlayIV.image = overlayImage;
[imagePickerController.cameraOverlayView addSubview:overlayIV];
}
imagePickerController.delegate = self;
[self presentViewController:imagePickerController animated:YES completion:nil];
その後:ここでの例では、3.5" 画面(あなたがiPhone 5のために働くためにそれを更新する必要があるだろう)のためです:。
//Crop the image to a square
CGSize imageSize = image.size;
CGFloat width = imageSize.width;
CGFloat height = imageSize.height;
if (width != height) {
CGFloat newDimension = MIN(width, height);
CGFloat widthOffset = (width - newDimension)/2;
CGFloat heightOffset = (height - newDimension)/2;
UIGraphicsBeginImageContextWithOptions(CGSizeMake(newDimension, newDimension), NO, 0.);
[image drawAtPoint:CGPointMake(-widthOffset, -heightOffset)
blendMode:kCGBlendModeCopy
alpha:1.];
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
そして、あなたが行われている
4
@Anders答えはiPhone 5で私を修正するために非常に近かった私は、iPhone 5用にハードコードオーバーレイを追加するには、以下の修正をした:
CGRect f = imagePickerController.view.bounds;
f.size.height -= imagePickerController.navigationBar.bounds.size.height;
UIGraphicsBeginImageContext(f.size);
[[UIColor colorWithWhite:0 alpha:.5] set];
UIRectFillUsingBlendMode(CGRectMake(0, 0, f.size.width, 124.0), kCGBlendModeNormal);
UIRectFillUsingBlendMode(CGRectMake(0, 444, f.size.width, 52), kCGBlendModeNormal);
UIImage *overlayImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *overlayIV = [[UIImageView alloc] initWithFrame:f];
overlayIV.image = overlayImage;
overlayIV.alpha = 0.7f;
[imagePickerController setCameraOverlayView:overlayIV];`
私はこれが誰かを助けることを願っています。
+6
IOS7のiPhone 5での私の経験は素晴らしかったです。具体的には、オーバーレイを見ることができましたが、ネイティブのズームコントロールを使用できませんでした。最後に、写真を撮って "Retake"と "Use Photo"ボタンが現れたら、いずれのボタンもクリックできませんでした。 YMMV –
関連する問題
- 1. UIImagePickerController切り取り?
- 2. テクスチャ内の半透明の四角形を切り取ります。
- 3. クライアントの四角の末尾にあるラベルの切り取り
- 4. UIImageで中央の四角形を切り抜くには?
- 5. サークルを四角形に切り抜く - プログラム的に
- 6. 四角形を塗りつぶす
- 7. StackPanelの四角形
- 8. UIImagePickerController - 画像を四角形(縦方向)にクロップする
- 9. イメージアニメーション:円から四角形へ。 (with corner.js)
- 10. C#、GDI + - 四角形が切り詰められるのはなぜですか?
- 11. ジェスチャーと四角形
- 12. 正方形から四角形への適合
- 13. ピクチャボックス内の四角形C#
- 14. 四角形ではない四角形に四角形を適用できますか?
- 15. Dashcodeの四角形の四角形リストから行の値を取得する方法は?
- 16. 四角形を四角形にマップするためのCATransform3Dを返します。
- 17. UIImageボタン(四角形ボタン)
- 18. Silverlightで四角形を部分的に塗りつぶす
- 19. WinRT(メトロ)の四角形のグリッドビュー
- 20. Qt:ウィンドウの四角形のサイズ変更
- 21. UIWebViewの範囲の四角形
- 22. UIImagePickerController後ろから前のカメラからアニメーションに切り替える方法は?
- 23. ImageMagickサークルからの四角形?
- 24. 最大四角形アルゴリズムの実装
- 25. Mathematicaで四角形のグリッドを描く
- 26. forループのOpenGL描画四角形
- 27. androidのmin3dで四角形を描く
- 28. Youtubeビデオの背景スケーリング - 四角形
- 29. 色付き四角形のGridView - Android
- 30. 設定の丸い四角形ボタン
ありがとうございます。とにかく、カメラオープニングアニメーションをオーバーレイの上に置くことができるかどうか疑問に思っていましたか? – NSDavidObject
残念ながら、公に文書化されたAPIを使用して(つまり、Appleがアプリケーションを拒否するようなことをしないで)、これを行う方法はありません。これを正しく実行したければ、 'UIImagePickerController'を再実装する必要があります。 – Ander
iphone 5と以前のiphoneの両方で動作させるには、どうすればよいですか? –