目錄:[Swift]Xcode實際操做html
本文將演示如何經過圖形上下文,來實現圖片縮放的功能.swift
在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】ide
1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8 9 //從項目資源文件中讀取一張圖片 10 let image = UIImage(named: "Picture") 11 //調用縮放圖片的方法,將圖片縮放至指定尺寸 12 let scaledImage = scaleImage(image: image!, newSize: CGSize(width: 180, height: 180)) 13 14 //建立一個圖像視圖,並加載尺寸縮小後的圖片 15 let imageView = UIImageView(image: scaledImage) 16 //接着設置圖像視圖的中心點座標爲(160,160) 17 imageView.center = CGPoint(x: 160, y: 160) 18 19 //將圖像視圖添加到當前視圖控制器的根視圖 20 self.view.addSubview(imageView) 21 } 22 23 //首先建立一個方法,傳遞一個圖像參數,和一個縮放比例參數, 24 //實現將圖像縮放至指定比例的功能 25 func scaleImage(image:UIImage, newSize:CGSize)->UIImage 26 { 27 //得到源圖像的指定的尺寸屬性 28 let imageSize = image.size 29 //得到源圖像的寬度數值 30 let width = imageSize.width 31 //得到源圖像的高度數值 32 let height = imageSize.height 33 34 //計算圖像新尺寸和舊尺寸的寬比例 35 let widthFactor = newSize.width/width 36 //計算圖像新尺寸和舊尺寸的高比例 37 let heightFactor = newSize.height/height 38 //獲取最小的哪一個比例 39 let scaleFactor = (widthFactor < heightFactor) ? widthFactor : heightFactor 40 41 //計算圖像新的寬度 42 let scaledWidth = width * scaleFactor 43 //計算圖像新的高度 44 let scaledHeight = height * scaleFactor 45 //將新的款的和高度,構建成標準的尺寸對象 46 let targetSize = CGSize(width: scaledWidth, height: scaledHeight) 47 48 //建立繪圖上下文環境 49 UIGraphicsBeginImageContext(targetSize) 50 //將圖像對象,畫入以前計算的新尺寸裏,原點爲(0,0,) 51 image.draw(in: CGRect(x: 0, y: 0, width: scaledWidth, height: scaledHeight)) 52 //獲取上下文的內容,將內容寫入到新的圖像對象 53 let newImage = UIGraphicsGetImageFromCurrentImageContext() 54 55 //在方法的結尾,返回生成的新的圖像對象 56 return newImage! 57 } 58 59 override func didReceiveMemoryWarning() { 60 super.didReceiveMemoryWarning() 61 // Dispose of any resources that can be recreated. 62 } 63 }