美文网首页
ios 上传图片竖屏拍照照片旋转问题

ios 上传图片竖屏拍照照片旋转问题

作者: 念念不忘一个丫头的容 | 来源:发表于2017-03-17 16:15 被阅读0次

在用照相机拍照获取的方法中,将图片做一下处理

// 处理竖屏拍照上传照片旋转问题

```

- (UIImage *)fixOrientation:(UIImage *)aImage {

if (aImage==nil || !aImage) {

return nil;

}

// No-op if the orientation is already correct

if (aImage.imageOrientation == UIImageOrientationUp) return aImage;

// We need to calculate the proper transformation to make the image upright.

// We do it in 2 steps: Rotate if Left/Right/Down, and then flip if Mirrored.

CGAffineTransform transform = CGAffineTransformIdentity;

UIImageOrientation orientation=aImage.imageOrientation;

int orientation_=orientation;

switch (orientation_) {

case UIImageOrientationDown:

case UIImageOrientationDownMirrored:

transform = CGAffineTransformTranslate(transform, aImage.size.width, aImage.size.height);

transform = CGAffineTransformRotate(transform, M_PI);

break;

case UIImageOrientationLeft:

case UIImageOrientationLeftMirrored:

transform = CGAffineTransformTranslate(transform, aImage.size.width, 0);

transform = CGAffineTransformRotate(transform, M_PI_2);

break;

case UIImageOrientationRight:

case UIImageOrientationRightMirrored:

transform = CGAffineTransformTranslate(transform, 0, aImage.size.height);

transform = CGAffineTransformRotate(transform, -M_PI_2);

break;

}

switch (orientation_) {

case UIImageOrientationUpMirrored:{

}

case UIImageOrientationDownMirrored:

transform = CGAffineTransformTranslate(transform, aImage.size.width, 0);

transform = CGAffineTransformScale(transform, -1, 1);

break;

case UIImageOrientationLeftMirrored:

case UIImageOrientationRightMirrored:

transform = CGAffineTransformTranslate(transform, aImage.size.height, 0);

transform = CGAffineTransformScale(transform, -1, 1);

break;

}

// Now we draw the underlying CGImage into a new context, applying the transform

// calculated above.

CGContextRef ctx = CGBitmapContextCreate(NULL, aImage.size.width, aImage.size.height,

CGImageGetBitsPerComponent(aImage.CGImage), 0,

CGImageGetColorSpace(aImage.CGImage),

CGImageGetBitmapInfo(aImage.CGImage));

CGContextConcatCTM(ctx, transform);

switch (aImage.imageOrientation) {

case UIImageOrientationLeft:

case UIImageOrientationLeftMirrored:

case UIImageOrientationRight:

case UIImageOrientationRightMirrored:

// Grr...

CGContextDrawImage(ctx, CGRectMake(0,0,aImage.size.height,aImage.size.width), aImage.CGImage);

break;

default:

CGContextDrawImage(ctx, CGRectMake(0,0,aImage.size.width,aImage.size.height), aImage.CGImage);

break;

}

// And now we just create a new UIImage from the drawing context

CGImageRef cgimg = CGBitmapContextCreateImage(ctx);

UIImage *img = [UIImage imageWithCGImage:cgimg];

CGContextRelease(ctx);

CGImageRelease(cgimg);

aImage=img;

img=nil;

return aImage;

}

```

相关文章

  • ios 上传图片竖屏拍照照片旋转问题

    在用照相机拍照获取的方法中,将图片做一下处理 // 处理竖屏拍照上传照片旋转问题 ``` - (UIImage *...

  • ios手机上传竖拍照片旋转90度问题

    利用exif.js插件解决ios手机上传竖拍照片旋转90度问题 问题描述:移动端手机照片上传时,发现手机上传竖拍图...

  • 解决vue中使用element-ui中Upload上传图片后图片

    问题:ios竖屏拍摄的图片上传后会旋转90度。 解决方案: 1.使用upload的beforeUpload方法获取...

  • h5解决手机上竖拍照片旋转90度问题

    移动端手机照片上传时,发现手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题. 利用exif.js读取照片的拍摄...

  • vue 图片压缩

    vue 图片压缩 上传图片大于100* 1024 的用canvas 来压缩来解决 然后IOS拍照上传会有图片旋转的...

  • vue 图片压缩

    vue 图片压缩 上传图片大于100* 1024 的用canvas来压缩来解决 然后IOS拍照上传会有图片旋转的问...

  • iOS上传图片后台旋转展示问题

    iOS上传图片后台旋转展示问题 在一次上传图片到服务器后,去后台页面查看,发现iOS显示的图片总是旋转90℃的,而...

  • 在竖屏锁定下,判断屏幕方向的问题

    自定义相机拍照和录制的时候,需求是横屏录制或拍照的时候,预览视频或图片要求竖屏显示。首先想到添加屏幕旋转通知,控制...

  • iOS图片旋转问题

    iOS图片旋转问题 在iOS开发中经常会遇到图片旋转的问题,比如:有时候上传到服务器中的图片方向与iPhone中图...

  • 处理视频旋转逻辑

    解决自动旋转和点击按钮旋转冲突问题(点击按钮旋转回退竖屏后,不能自动旋转) 答:其实只要在点击按钮旋转回竖屏时再加...

网友评论

      本文标题:ios 上传图片竖屏拍照照片旋转问题

      本文链接:https://www.haomeiwen.com/subject/ubwenttx.html