カメラから画像をキャプチャした後、別のビューに移動したときに、その画像を自動的に-90度回転させた場合、再度ビューを90度回転させて元の位置に戻すことはできますか?iOSで90度イメージを変更するには?
1
A
答えて
3
imageView.transform = CGAffineTransformMakeRotation(3.14/2);
はここ
+1
imageView! –
0
を助ける必要がありますが参照できるリンクです。
あなたはCGAffineTransform
を使用してそれを行うことができます。
お客様のご質問は、お客様のご質問に応じて十分です。
How to programmatically rotate image by 90 Degrees in iPhone?
は、この情報がお役に立てば幸いです。
0
は、この関数のスケールをチェックアウトし、回転させ、それはあなたが、PI値を使用する必要があります
image = [self scaleAndRotateImage:image];
- (void)scaleAndRotateImage:(UIImage *)image
{
int kMaxResolution = 320; // Or whatever
CGImageRef imgRef = image.CGImage;
CGFloat width = CGImageGetWidth(imgRef);
CGFloat height = CGImageGetHeight(imgRef);
CGAffineTransform transform = CGAffineTransformIdentity;
CGRect bounds = CGRectMake(0, 0, width, height);
if (width > kMaxResolution || height > kMaxResolution) {
CGFloat ratio = width/height;
if (ratio > 1) {
bounds.size.width = kMaxResolution;
bounds.size.height = bounds.size.width/ratio;
}
else {
bounds.size.height = kMaxResolution;
bounds.size.width = bounds.size.height * ratio;
}
}
CGFloat scaleRatio = bounds.size.width/width;
CGSize imageSize = CGSizeMake(CGImageGetWidth(imgRef), CGImageGetHeight(imgRef));
CGFloat boundHeight;
UIImageOrientation orient = image.imageOrientation;
switch(orient) {
case UIImageOrientationUp: //EXIF = 1
transform = CGAffineTransformIdentity;
break;
case UIImageOrientationUpMirrored: //EXIF = 2
transform = CGAffineTransformMakeTranslation(imageSize.width, 0.0);
transform = CGAffineTransformScale(transform, -1.0, 1.0);
break;
case UIImageOrientationDown: //EXIF = 3
transform = CGAffineTransformMakeTranslation(imageSize.width, imageSize.height);
transform = CGAffineTransformRotate(transform, M_PI);
break;
case UIImageOrientationDownMirrored: //EXIF = 4
transform = CGAffineTransformMakeTranslation(0.0, imageSize.height);
transform = CGAffineTransformScale(transform, 1.0, -1.0);
break;
case UIImageOrientationLeftMirrored: //EXIF = 5
boundHeight = bounds.size.height;
bounds.size.height = bounds.size.width;
bounds.size.width = boundHeight;
transform = CGAffineTransformMakeTranslation(imageSize.height, imageSize.width);
transform = CGAffineTransformScale(transform, -1.0, 1.0);
transform = CGAffineTransformRotate(transform, 3.0 * M_PI/2.0);
break;
case UIImageOrientationLeft: //EXIF = 6
boundHeight = bounds.size.height;
bounds.size.height = bounds.size.width;
bounds.size.width = boundHeight;
transform = CGAffineTransformMakeTranslation(0.0, imageSize.width);
transform = CGAffineTransformRotate(transform, 3.0 * M_PI/2.0);
break;
case UIImageOrientationRightMirrored: //EXIF = 7
boundHeight = bounds.size.height;
bounds.size.height = bounds.size.width;
bounds.size.width = boundHeight;
transform = CGAffineTransformMakeScale(-1.0, 1.0);
transform = CGAffineTransformRotate(transform, M_PI/2.0);
break;
case UIImageOrientationRight: //EXIF = 8
boundHeight = bounds.size.height;
bounds.size.height = bounds.size.width;
bounds.size.width = boundHeight;
transform = CGAffineTransformMakeTranslation(imageSize.height, 0.0);
transform = CGAffineTransformRotate(transform, M_PI/2.0);
break;
default:
[NSException raise:NSInternalInconsistencyException format:@"Invalid image orientation"];
}
UIGraphicsBeginImageContext(bounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();
if (orient == UIImageOrientationRight || orient == UIImageOrientationLeft) {
CGContextScaleCTM(context, -scaleRatio, scaleRatio);
CGContextTranslateCTM(context, -height, 0);
}
else {
CGContextScaleCTM(context, scaleRatio, -scaleRatio);
CGContextTranslateCTM(context, 0, -height);
}
CGContextConcatCTM(context, transform);
CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, width, height), imgRef);
UIImage *imageCopy = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[self setRotatedImage:imageCopy];
//return imageCopy;
}
1
ための助けとなることがあります。
ImageView.transform = CGAffineTransformMakeRotation(M_PI/2);
関連する問題
- 1. イメージを90度回転する
- 2. ビューを90度回転するiOS
- 3. グラフの角度をグラフの角度90°(垂直)に変更する方法C#
- 4. 変更イメージ角度-UIカルーセル
- 5. GridViewでイメージを変更するには?
- 6. ターンアコーディオン90度
- 7. 画像を90度、180度または270度回転する
- 8. イメージをリロードせずに角度を変更する2/4
- 9. jQueryでイメージのalt属性を何度も変更するには?
- 10. Ionic 2/Cordova picture 90 deg - exifを変更
- 11. イメージのサイズを変更するには
- 12. イメージのイメージソースを変更するには?
- 13. Androidを90度回転する
- 14. GoJs図形を90度回転する
- 15. リストアイテムを90度回転する
- 16. PHP高度なイメージのサイズ変更、iOSのサイズ変更の方法と似ています
- 17. Xamarinフォームiosの起動画面イメージを変更する
- 18. iOSの変更アニメーションの速度をリアルタイムで表示する
- 19. 画像のサイズを変更しキャンバスを90度回転させよう
- 20. シェルスクリプトは90日ごとに自動的にパスワードを変更する
- 21. WordpressでイメージURL自体をイメージに変更する方法
- 22. Ruby:イメージが変更された後にイメージのパスを更新するには?
- 23. y軸90度のジンバルロック
- 24. Three.js 90度ベクトルの回転
- 25. イメージを縮小せずにAndroidでイメージのサイズを変更するには?
- 26. イメージの不透明度を変更できません
- 27. iOS 11 UIBarButtonItemイメージはサイズ変更されていません
- 28. FCKeditorでイメージのアップロードパス*を動的に変更するには
- 29. Androidでイメージにキャンバスの背景を変更するには?
- 30. Xamarinフォーム(iOS) - キーボードの背景の透明度を変更する
[UIImageを90度回転させるにはどうすればいいですか?](http://stackoverflow.com/questions/1315251/how-to-rotate-a-uimage-90-degrees) – iPhone