[Swift通天遁地]五、高级扩展-(8)ImageView(图像视图)的各种扩展方法

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10246601.html 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

目录:[Swift]通天遁地Swift

本文将演示图像和图像视图在下载、压缩、裁剪方面的扩展。

首先确保在项目中已经安装了所需的第三方库。

点击【Podfile】,查看安装配置文件。

1 platform :ios, '12.0'
2 use_frameworks!
3 
4 target 'DemoApp' do
5     source 'https://github.com/CocoaPods/Specs.git'
6     pod 'EZSwiftExtensions'
7 end

根据配置文件中的相关配置,安装第三方库。

然后点击打开【DemoApp.xcworkspace】项目文件。

在项目导航区,打开视图控制器的代码文件【ViewController.swift】

现在开始编写代码,依次使用图像类型的各个扩展方法。

  1 import UIKit
  2 //在当前的类文件中,引入已经安装的第三方类库
  3 import EZSwiftExtensions
  4 
  5 class ViewController: UIViewController {
  6 
  7     override func viewDidLoad() {
  8         super.viewDidLoad()
  9         // Do any additional setup after loading the view, typically from a nib.
 10         //图像视图的一些扩展方式
 11         uiImageViewExample()
 12         //图像类型的扩展
 13         uiImageExtensions()
 14         //对图片进行裁切
 15         cropImage()
 16     }
 17     
 18     //添加一个方法,图像视图的一些扩展方式
 19     func uiImageViewExample()
 20     {
 21         //从项目中读取一张图片素材
 22         let image = UIImage(named: "Girl")!
 23         //初始化一个图像视图,并设置图像视图的坐标、待显示的图片。
 24         //在此设置图像视图的宽度为200,高度为等比例缩放。
 25         let imageView = UIImageView(x: 0, y: 0, image: image, scaleToWidth: 200)
 26         //通过调用图像视图对象的圆角方法,
 27         //将图像视图修改成一个圆角视图。
 28         imageView.roundSquareImage()
 29         //设置图像视图位于根视图的中心位置
 30         imageView.center = self.view.center
 31         //将图像视图添加到父视图中
 32         self.view.addSubview(imageView)
 33     }
 34     
 35     //添加一个方法,快速下载网络图片
 36     func downloadImage()
 37     {
 38         //初始化一个图像视图,并设置图像视图的显示区域
 39         let imageView = UIImageView(x: 0, y: 0, w: 320, h: 568)
 40 
 41         //通过图像视图对象的从网址下载图片的方法,下载指定网址的图片。
 42         //imageView.imageWithUrl(url: "http://images.apple.com/v/apple-watch-nike/a/images/overview/features_large.jpg")
 43 
 44         //将图像视图添加到根视图
 45         self.view.addSubview(imageView)
 46         
 47         //初始化一个图片,作为图像视图的占位图片。
 48         let placeholder = UIImage(named: "background")!
 49         //通过图像视图对象的从网址下载图片的方法,下载指定网址的图片。
 50         //并设置图像视图的占位图片
 51         imageView.imageWithUrl(url: "http://images.apple.com/v/apple-watch-nike/a/images/overview/features_large.jpg",
 52                                 placeholder: placeholder)//占位图片
 53     }
 54     
 55     //添加一个方法,演示对图像类型的扩展。
 56     func uiImageExtensions()
 57     {
 58         //从项目中读取一张图片
 59         let image = UIImage(named: "background")!
 60         //输出图片的字节数
 61         print(image.getSizeAsBytes())
 62         //输出图片的千字节数
 63         print(image.getSizeAsKilobytes())
 64         
 65         //通过图像对象的压缩方法,可以压缩图像的体积
 66         let newImage = UIImage(data: image.compressImage(rate: 0.5)!)!
 67         //在控制台输出压缩后的图像的千字节数
 68         print(newImage.getSizeAsKilobytes())
 69         
 70         //初始化一个图像视图对象,并设置图像视图对象的显示区域
 71         let imageView = UIImageView(x: 0, y: 0, w: 320, h: 568)
 72         //使用图像视图显示压缩后的图片
 73         imageView.image = newImage
 74         //将图像视图对象添加到根视图
 75         self.view.addSubview(imageView)
 76     }
 77 
 78     //添加一个方法,对图片进行裁切
 79     func cropImage()
 80     {
 81         //从项目中读取一张图片
 82         let image = UIImage(named: "Girl")!
 83         //在控制台输出图片的原始尺寸
 84         print(image.size)
 85         //通过图片对象的裁切方法,裁切指定区域的图片内容
 86         let croppedImage = image.croppedImage(CGRect(x: 140, y: 160, w: 200, h: 320))
 87         //在控制台输出图片在裁切后的尺寸
 88         print(croppedImage?.size as Any)
 89         
 90         //初始化一个图像视图对象,并是设置图像视图对象的显示区域。        
 91         let imageView = UIImageView(x: 60, y: 40, w: 200, h: 320)
 92         //该图像视图将被用来显示裁切后的图片
 93         imageView.image = croppedImage
 94         //将图像视图添加到根视图
 95         self.view.addSubview(imageView)
 96     }
 97     
 98     override func didReceiveMemoryWarning() {
 99         super.didReceiveMemoryWarning()
100         // Dispose of any resources that can be recreated.
101     }
102 }
原文地址:https://www.cnblogs.com/strengthen/p/10246601.html