iOS真机拍照剪裁,旋转90度。
来源:互联网 发布:美国经济发展历程数据 编辑:程序博客网 时间:2024/05/21 14:58
把如下代码加入剪裁图片的库里。
+ (UIImage *)fixOrientation:(UIImage *)aImage { // 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; switch (aImage.imageOrientation) { 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; default: break; } switch (aImage.imageOrientation) { 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; default: 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); return img;}
在imgepicker的finish回调方法中调用该剪裁图片的类方法即可。
- iOS真机拍照剪裁,旋转90度。
- javacv 颜色识别&&拍照&&剪裁&&图像旋转
- iOS关于拍照旋转90度的问题
- iOS拍照之后图片自动旋转90度解决办法
- iOS拍照之后图片自动旋转90度解决办法
- iOS拍照之后图片自动旋转90度解决办法
- 关于iOS拍照图片旋转90度问题
- MVP模式的Android 调用系统拍照,相册,剪裁,适配到7.0,修复拍照图片旋转问题
- Android 7.0 调用系统拍照,相册,剪裁,修复拍照图片旋转问题
- android 竖屏拍照旋转90度
- 利用exif.js解决ios手机上传竖拍照片旋转90度问题
- 利用exif.js解决ios手机上传竖拍照片旋转90度问题
- 利用exif.js插件解决ios手机上传竖拍照片旋转90度问题
- 利用exif.js解决ios手机上传竖拍照片旋转90度问题
- iOS拍照之后图片在PC端粘贴后自动旋转90度
- 利用exif.js解决ios手机上传竖拍照片旋转90度问题
- IOS开发 拍照上传图片旋转90°
- 拍照+剪裁+bitmap
- P-state
- 用jquery动态添加html任何标签的自定义属性
- 图解B+树的插入和删除(一看就懂)
- 关于<AppName>-Prefix.pch文件的用法
- jquery如何改变html标签的样式(两种实现方法)
- iOS真机拍照剪裁,旋转90度。
- Android之ActivityGroup + GridView 实现Tab分页标签
- T-state
- iPhone 上Sqlite 3 的使用方法
- javascript 将长串数字每三个数字间加一个逗号
- 不同类型的变量与零值比较的写法
- Nginx学习之七-模块ngx_epoll_module详解(epoll机制在nginx中的实现)
- AFNetworking 如何POST一个JSON数据到服务器
- iframe自适应高度(有用哦)