关于UIImage

  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是图片路径的前缀。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容