//使用swift的朋友们可以,把这个所在的类的.h,在-Header-Swift.h中一用一下。

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

if (aImage.imageOrientation == UIImageOrientationUp)

return aImage;

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;

}

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;

}

//分享一下我在使用时的部分代码,arr中放的是Uiimage

最新文章

  1. js实现的点击div区域外隐藏div区域(转)
  2. C#设计模式——适配器模式(Adapter Pattern)
  3. 查询数据表,去除符合某些条件的记录,没有自动增长列(not exists)
  4. android 利用TrafficStats类获取本应用的流量
  5. poj 1564 Sum It Up
  6. Android -- 经验分享
  7. SVN server 安装 并创建用户访问
  8. IOS-UIProgressView的简单介绍
  9. 注意mysql中的编码格式和php中的编码格式一致
  10. UVA 10020 Minimal coverage(贪心 + 区间覆盖问题)
  11. 关于python2.7从数据库读取中文显示乱码的问题解决
  12. qt窗口的切换
  13. 使用 OpenCV 与 Face++ 人脸识别
  14. WSUS补丁下载速度慢解决办法
  15. Javascript 严格模式(strict mode)详解
  16. [shell] 脚本使用 【记录】
  17. 2019.01.23 hdu3377 Plan(轮廓线dp)
  18. 【LeetCode题解】19_删除链表的倒数第N个节点(Remove-Nth-Node-From-End-of-List)
  19. T-SQL语句2
  20. Objective-c官方文档 怎么使用对象

热门文章

  1. CACHE COHERENCE AND THE MESI PROTOCOL
  2. sql server 游标 写给自己
  3. 来回切换页面并关闭其他tab
  4. 关于CAShapeLayer的一些实用案例和技巧【转】
  5. css定位 与position
  6. 关于复选框input[type=checkbox]
  7. vuejsLearn---通过手脚架快速搭建一个vuejs项目
  8. orange pi pc 体验(一)
  9. 基于Python的TestAgent实现
  10. 动画黄金搭档:CADisplayLink&CAShapeLayer