zoukankan      html  css  js  c++  java
  • iOS开发中图片方向的获取与更改

    iOS开发中 再用到照片的时候  或多或少遇到过这样的问题  就是我想用的照片有横着拍的有竖着排的  所以导致我选取图片后的效果也横七竖八的   显示效果不好

     比如:

    图中红圈选中的图片选取的是横着拍的图片 所以显示的头像也是横着的 显示效果不佳

    问题描述:

    使用过iPhone或者iPad的朋友在拍照时不知是否遇到过这样的问题,将设备中的照片导出到Windows上时,经常发现导出的照片方向会有问题,要么横着,要么颠倒着,需要旋转才适合观看。而如果直接在这些设备上浏览时,照片会始终显示正确的方向,在Mac上也能正确显示。最近在iOS的开发中也遇到了同样的问题,将拍摄的照片上传到服务器后,再由Windows端下载该照片,发现手机上完全正常的照片到了这里显示的横七竖八。同一张照片为什么在不同的设备上表现的不同?如何能够避免这种情况

    解决方法:

    要想解决这个问题  我们就需要拿到图片的相关信息,去检查图片的方向   从而根据方向去做出调整:

    UIImage对象中有一个属性叫:imageOrientation,这里面便保存了方向信息:

    它一共有八个值:

    那么我们便可以根据这一属性对图像进行相应的旋转,从而将图像的原始数据旋转至正确的方向,在浏览照片时无需方向信息便可正常浏览。

    解决方法:

     - (UIImage *)normalizedImage {
         if (self.imageOrientation == UIImageOrientationUp) return self; 
      
         UIGraphicsBeginImageContextWithOptions(self.size, NO, self.scale);
         [self drawInRect:(CGRect){0, 0, self.size}];
         UIImage *normalizedImage = UIGraphicsGetImageFromCurrentImageContext();
         UIGraphicsEndImageContext();
         return normalizedImage;
     }

    这里是利用了UIImage中的drawInRect方法,它会将图像绘制到画布上,并且已经考虑好了图像的方向

    参考详情:cocoChina

  • 相关阅读:
    【NOIP2009提高组】最优贸易
    matlab数字图像处理-给图片加入可视水印信息
    数字水印技术
    matlab数据插值
    matlab中的多项式计算
    python中圆周率的计算
    python中random库的使用
    python的循环结构
    python身体指数BMI
    python程序控制--分支结构
  • 原文地址:https://www.cnblogs.com/gaoxiaoniu/p/5329834.html
Copyright © 2011-2022 走看看