18 Swift解决图像拉伸问题

前端之家收集整理的这篇文章主要介绍了18 Swift解决图像拉伸问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在iOS开发中,经常需要对图像经常优化处理,免得影响性能。下面记录怎么绘制新的图片解决图像拉伸问题。

1 获取绘图上下文

  1. /** 1.取绘图上下文
  2. * size: 需要绘制的目标图片大小
  3. * opaque : bool值,指定TRUE,则表示忽略alpha通道并优化位图的存储,FALSE,表示每个像素使用一个premultipled ARGB格式
  4. * scale : 应用于位图的比例因子。如果指定值为0,则缩放因子设置为设备主屏幕的比例因子。
  5. */
  6. UIGraphicsBeginImageContextWithOptions(rect.size,true,0)

2 指定区域内绘制拉伸图片

  1. origalImage.draw(in: rect)

3 获取绘制的图片

  1. let stretchImage = UIGraphicsGetImageFromCurrentImageContext()

4 关闭绘图上下文

  1. UIGraphicsEndImageContext()

5 返回绘制好的图片

  1. return stretchImage!

6 完整代码示例

  1. /// 拉伸图片
  2. ///
  3. /// - parameter origalImage: 需要被拉伸的图片
  4. /// - parameter destinationSize: 拉伸的目标大小
  5. ///
  6. /// - returns: 重新绘制好的拉伸图片
  7. func stretchingImage(origalImage:UIImage,destinationSize:CGSize) -> UIImage{
  8. let rect = CGRect(origin: CGPoint(),size: destinationSize)
  9. /** 1.取绘图上下文
  10. * size: 需要绘制的目标图片大小
  11. * opaque : bool值,指定TRUE,则表示忽略alpha通道并优化位图的存储,FALSE,表示每个像素使用一个premultipled ARGB格式
  12. * scale : 应用于位图的比例因子。如果指定值为0,则缩放因子设置为设备主屏幕的比例因子。
  13. */
  14. UIGraphicsBeginImageContextWithOptions(rect.size,0)
  15. /** 2.指定区域内绘制拉伸图片
  16. *
  17. */
  18. origalImage.draw(in: rect)
  19. /** 3.获取绘制的图片
  20. *
  21. */
  22. let stretchImage = UIGraphicsGetImageFromCurrentImageContext()
  23. /** 4关闭绘图上下文
  24. *
  25. */
  26. UIGraphicsEndImageContext()
  27. /** 5.返回绘制好的图片
  28. *
  29. */
  30. return stretchImage!
  31. }

猜你在找的Swift相关文章