你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS7技巧 >> ios開發之Swift自動優化照片調整善圖像質量

ios開發之Swift自動優化照片調整善圖像質量

編輯:IOS7技巧
下面我們來看一篇關於ios開發之Swift自動優化照片調整善圖像質量的例子,希望這篇文章能夠為各位同學帶來幫助,具體的操作如下所示。

Core Image能通過分析圖片的各個屬性,人臉的區域等進行自動優化圖片。我們只需要調用autoAdjustmentFiltersWithOptions這個API方法獲取各個自動增強濾鏡來優化圖片即可。不管是人物照片還是風景照均可增強效果。

(以前另外還有個叫autoAdjustmentFilters的方法,現已廢除。)  

1,具體使用的濾鏡如下:

(1)CIRedEyeCorrection:修復因相機的閃光燈導致的各種紅眼
(2)CIFaceBalance:調整膚色
(3)CIVibrance:在不影響膚色的情況下,改善圖像的飽和度
(4)CIToneCurve:改善圖像的對比度
(5)CIHighlightShadowAdjust:改善陰影細節

2,autoAdjustmentFiltersWithOptions方法參數說明(字典類型):

(1)CIDetectorImageOrientation提供圖像方向:使Core Image能更精確的定位到臉的位置,對CIRedEyeCorrection和CIFaceBalance濾鏡很有用。 (2)kCIImageAutoAdjustEnhance設為false :只需要消除紅眼,不要其他濾鏡 (3)kCIImageAutoAdjustRedEye設為false :消除紅眼不要,其他濾鏡都要  

3,效果圖如下(右側為優化後的):

 

原文:Swift - 自動優化照片,改善圖像質量 原文:Swift - 自動優化照片,改善圖像質量 原文:Swift - 自動優化照片,改善圖像質量 4,代碼如下(所有濾鏡都使用):  代碼如下 復制代碼
import UIKit
 
class ViewController: UIViewController{
     
    @IBOutlet weak var imageView: UIImageView!
     
    //圖片原圖
    lazy var originalImage: UIImage = {
        return UIImage(named: "IMG_0473.jpg")
    }()!
     
    lazy var context: CIContext = {
        return CIContext(options: nil)
        }()
     
    override func viewDidLoad() {
        super.viewDidLoad()
    }
     
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
     
    //優化圖片
    @IBAction func autoAdjustImage(sender: AnyObject) {
        var inputImage = CIImage(image: originalImage)
        let options:[String : AnyObject] = [CIDetectorImageOrientation:1] //圖片方向
        let filters = inputImage!.autoAdjustmentFiltersWithOptions(options)
        //遍歷所有濾鏡,依次處理圖像
        for filter: CIFilter in filters {
            filter.setValue(inputImage, forKey: kCIInputImageKey)
            inputImage = filter.outputImage
        }
        let cgImage = context.createCGImage(inputImage!, fromRect: inputImage!.extent)
        self.imageView.image = UIImage(CGImage: cgImage)
    }
     
    //還原圖片
    @IBAction func resetImage(sender: AnyObject) {
         self.imageView.image = originalImage
    }
}
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved