私はこのiPhoneアプリケーションを使用して、ユーザーが写真を撮ってオンラインでデータベースに保存できるようにしました。私の問題は、ユーザーが写真を撮って保存するたびに、ポートレートモードで撮影されているにもかかわらず、写真が風景になるということです。これにより、ポートレート画像が引き伸ばされます。iPhoneは常に風景を保存するときに写真を撮る
これは、写真を撮るとき、私が使用したコードです:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissModalViewControllerAnimated:YES];
NSData *imgData=UIImageJPEGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"],1);
UIImage *img=[[UIImage alloc] initWithData:imgData];
if(img.size.width < img.size.height){
NSLog(@"width < height");
imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
}
else{
NSLog(@"width > height");
imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 460, 320)];
}
imageView.image = img;
[img release];
[[self view] fillPreviewWithImg: imageView];
[[self view] setImage: imageView.image];
}
は基本的に私は何をすべきか、写真を撮るUIImageを作成し、それを縦または横だかどうかを確認し、対応するUIImageViewを作成し、設定していますイメージをUIImageViewに挿入します。その後、メインビューでイメージを設定するための2つのメソッドを呼び出します。
私はストレッチの問題はPHPではなくObjective-Cコードに限定されていると信じていますが、この動作がどうやって起こるのかは分かりません。
あなたは誰ですか?
おかげで、
Masiar
ランドスケープピクチャまたはポートレートピクチャを取ったときにログが正しく印刷されましたが、UIImageViewが正しく作成されていても、ポートレート用に引き伸ばされていて、ランドスケープ用に正しい場合でも可能ですか?さらに、私はUIImageOrientationをどのように使いますか?私はそれを見てきましたが、あいまいです。 – Masiar
'UIImage * img = [[UIImage alloc] initWithData:imgData];'これのimageOrientationを確認し、ポートレートの場合はCGRectが320,460のイメージビューを作成し、そうでない場合は460,320を使用します。 –
私は次のようなことをしました: 'case UIImageOrientationUp: NSLog(@" width
Masiar