美文网首页
关于UIImage

关于UIImage

作者: 我是花老虎 | 来源:发表于2016-08-09 23:09 被阅读62次
    1. UIImage是什么
      用来管理APP里的图片资源,可以用来表示设备支持的图片资源,不仅仅是jpg和png。
      UIImage是immutable的,因此也是线程安全的。
    2. iOS支持的所有的图片格式
      链接

      不过,对于gif格式,只能展示第一帧。需要把gif分成若干帧,分别展示。
    3. iOS本身的图片缓存系统
      iOS本身有一个图像缓存系统。系统在内存不够使,会清除缓存中的一些内容。
      使用init(named:in:compatibleWith:)方法生成的image被加入到了系统缓存中去。因此适合于创建频繁使用的图片。这个方法在iOS9以后是线程安全的。
      使用imageWithContentsOfFile:的方法创建的image没有被加入系统缓存中去,每次调用都会重新载入图片。
    4. 如何比较两张图片的数据是否一致。
      由于图像存在缓存系统,因此唯一可以比较图片数据是否相同的方法是isEqual(_:)方法,这个方法比较真实的图片数据。
    5. 从UIImage获取图像的其他表示方法
    • cgImage属性,在Core Graphics框架内。
    • ciImage属性,在Core Image框架内
    • UIImagePNGRepresentation(_:), png格式的数据
    • UIImageJPEGRepresentation(_:_:), jpg格式的数据
    1. 图片的方向

      链接
    2. 图片的size
      以point度量的图片的大小
    3. 图片的scale
      物理像素和逻辑像素的比值。size*scale就是以像素度量的图片大小。
    4. 展示一系列图片
      UIImage可以展示一些列图片,得到类似gif的图片效果。这些图片应该有相同的size和scale
    • 通过UIImage数组生成
        class func animatedImage(with images: [UIImage], duration: TimeInterval) -> UIImage?
    
        class func animatedResizableImageNamed(_ name: String, capInsets: UIEdgeInsets, duration: TimeInterval) -> UIImage?
    
    • 通过路径生成
    class func animatedImageNamed(_ name: String, duration: TimeInterval) -> UIImage?
    class func animatedResizableImageNamed(_ name: String, capInsets: UIEdgeInsets, resizingMode: UIImageResizingMode, duration: TimeInterval) -> UIImage?
    

    其中,name是图片路径的前缀。

    相关文章

      网友评论

          本文标题:关于UIImage

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