ios 防止相册取图片旋转
来源:互联网 发布:linux 程序权限 编辑:程序博客网 时间:2024/05/21 12:45
+(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) {
caseUIImageOrientationDown:
caseUIImageOrientationDownMirrored:
transform = CGAffineTransformTranslate(transform, aImage.size.width, aImage.size.height);
transform = CGAffineTransformRotate(transform, M_PI);
break;
caseUIImageOrientationLeft:
caseUIImageOrientationLeftMirrored:
transform = CGAffineTransformTranslate(transform, aImage.size.width,0);
transform = CGAffineTransformRotate(transform, M_PI_2);
break;
caseUIImageOrientationRight:
caseUIImageOrientationRightMirrored:
transform = CGAffineTransformTranslate(transform,0, aImage.size.height);
transform = CGAffineTransformRotate(transform, -M_PI_2);
break;
default:
break;
}
switch (aImage.imageOrientation) {
caseUIImageOrientationUpMirrored:
caseUIImageOrientationDownMirrored:
transform = CGAffineTransformTranslate(transform, aImage.size.width,0);
transform = CGAffineTransformScale(transform, -1,1);
break;
caseUIImageOrientationLeftMirrored:
caseUIImageOrientationRightMirrored:
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) {
caseUIImageOrientationLeft:
caseUIImageOrientationLeftMirrored:
caseUIImageOrientationRight:
caseUIImageOrientationRightMirrored:
// 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 = [UIImageimageWithCGImage:cgimg];
CGContextRelease(ctx);
CGImageRelease(cgimg);
return img;
}
- ios 防止相册取图片旋转
- iOS 相册图片,相机图片被旋转问题 uiimage orientation
- iOS 取相册
- 从相册中选取图片
- iOS选取相册图片
- [iOS]删除相册图片
- iOS中(相册)摄像头获取的图片上传至服务器被自动旋转了
- iOS中(相册)摄像头获取的图片上传至服务器被自动旋转了
- iOS中(相册)摄像头获取的图片上传至服务器被自动旋转了
- 解决相册图片旋转的问题
- 拍照/选择相册,图片压缩旋转处理
- HTML5 3D旋转图片相册
- android 手机拍照。。相册 取图片
- 取相册第一张图片--ALAssetsLibrary使用
- IOS 保存图片至相册
- iOS 保存图片至相册
- IOS 保存图片至相册
- IOS 保存图片至相册
- 在jsp中使用smartupload组件上传文件
- 如何招聘一个优秀的Scrum Master(转载)
- opencv 随机森林学习
- 搜索 T题
- Anaconda使用备忘
- ios 防止相册取图片旋转
- Lucene -- 准实时搜索Near Real Time
- Apache许可证 相关 记录
- 戴维南定理顺口溜
- navigationController 后退返回vc
- 海康威视IP摄像头基于OPENCV的二次开发
- 关于ionic 使用select焦点问题
- collate chinese_prc_ci_as null解说
- 数学狂想曲(五)——概率分布(2), 自相关&互相关&卷积