これは私のアプリのカメラ オーバーレイです。
黄色の四角は、この部分 (カメラ内) 内の写真のみが保存されることをユーザーに示します。作物のようです。
そのキャプチャ画像を保存すると、ズームされた写真 [大きくズームされた写真] が保存されます。
私が見つけたのは、写真を撮ったときのサイズです{2448, 3264}
こんな感じで画像をトリミングしています。
- (UIImage *)imageByCroppingImage:(UIImage *)image toSize:(CGSize)size
{
double x = (image.size.width - size.width) / 2.0;
double y = (image.size.height - size.height) / 2.0;
CGRect cropRect = CGRectMake(x, y, size.height, size.width);
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], cropRect);
UIImage *cropped = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
return cropped;
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage];
if (image) {
UIImage *newImage = [self imageByCroppingImage:image toSize:CGSizeMake(300.f, 300.f)];
UIImageWriteToSavedPhotosAlbum(newImage, nil, nil, nil);
}
}
ノート、
トリミングを実行する前に方向が修正されました。これを使用して、http://pastebin.com/WYUkDLS0
カメラの黄色い四角も同じサイズで、幅=300、高さ=300です。
フロントカメラを設定
UIImagePickerController
すると、トリミングされた画像の完璧な出力が得られます。はい、これは本当に奇妙です!私はここからすべてを試しました。https://github.com/Nyx0uf/NYXImagesKitでも役に立ちません。
アイデア/提案はありますか?
アップデート:
この質問から、UIImage を 1:1 のアスペクト比 (正方形) にトリミングしようとしていますが、画像が拡大され続け、画像がぼやけてしまいます。なんで?
私はこのように@DrummerBの答えに従いました、
CGFloat originalWidth = image.size.width * image.scale;
CGFloat originalHeight = image.size.height * image.scale;
float smallestDimension = fminf(originalWidth, originalHeight);
CGRect square = CGRectMake(0, 0, smallestDimension, smallestDimension);
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], square);
UIImage *squareImage = [UIImage imageWithCGImage:imageRef scale:image.scale orientation:image.imageOrientation];
UIImageWriteToSavedPhotosAlbum(squareImage, nil, nil, nil);
CGImageRelease(imageRef);
これは私が捉えたもので、
そして、それは私に次の結果をもたらします、
今、私は正方形の写真を取得していますが、出力に注意してください。まだその黄色の正方形の外側の写真を取得しています。私が欲しいのは、黄色い四角にある写真を取得することです。キャプチャされた画像のサイズは {w=2448, h=3264} のままです。画像の外側の部分を示す赤い円は、黄色の四角の内側にないため、出力に含めないでください。
これで何が問題なのですか?