目錄:[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 = self.grayImage(image: image!) 13 14 //建立一個圖像視圖對象, 15 //並給圖像視圖對象,加載轉換後的灰度圖片 16 let imageView = UIImageView(image: scaledImage) 17 //而後設置圖像視圖的中心位置爲(160,260) 18 imageView.center = CGPoint(x: 160, y: 260) 19 20 //將圖像視圖添加到當前視圖控制器的根視圖 21 self.view.addSubview(imageView) 22 } 23 24 //首先建立一個方法,傳遞一個圖像參數, 25 //實現將圖像轉換爲灰度圖的功能 26 func grayImage(image:UIImage)->UIImage 27 { 28 //得到源圖像的尺寸屬性 29 let imageSize = image.size 30 //得到源圖像的寬度數值 31 let width = Int(imageSize.width) 32 //得到源圖像的高度數值 33 let height = Int(imageSize.height) 34 35 //建立灰度色彩空間對象,各類設備處理顏色的方式都不一樣, 36 //顏色必須有一個相關的色彩空間, 37 //不然,圖形上下文將不知道如何解釋相關的顏色值。 38 let spaceRef = CGColorSpaceCreateDeviceGray() 39 //參數1:指向要渲染的,繪製內存的地址。 40 //參數2:表示寬度 41 //參數3:表示高度 42 //參數4:表示內存中像素的每一個組件的位數 43 //參數5:表示每一行,在內存中所佔的比特數 44 //參數6:表示上下文使用的顏色空間 45 //參數7:表示是否包含alpha通道 46 let context = CGContext(data: nil, 47 width: width, 48 height: height, 49 bitsPerComponent: 8, 50 bytesPerRow: 0, 51 space: spaceRef, 52 bitmapInfo: CGBitmapInfo().rawValue)! 53 54 //而後建立一個和源圖像一樣尺寸的空間 55 let rect = CGRect(x: 0, y: 0, width: imageSize.width, height: imageSize.height) 56 //在灰度上下文中畫入圖片 57 context.draw(image.cgImage!, in: rect) 58 //從上下文中,獲取並生成轉爲灰度的圖片 59 let grayImage = UIImage(cgImage: context.makeImage()!) 60 61 //在方法的末尾,返回最終的灰度圖片 62 return grayImage 63 } 64 65 override func didReceiveMemoryWarning() { 66 super.didReceiveMemoryWarning() 67 // Dispose of any resources that can be recreated. 68 } 69 }