import Foundation
import UIKit
extension UIImage {
/* 壓縮圖片 */
func imageCompress(toScale: CGFloat) -> UIImage {
let targetHeight = toScale * self.size.height
let targetWidth = toScale * self.size.width
let size = CGSize(width: targetWidth, height: targetHeight)
//創(chuàng)建一個基于位圖的上下文
UIGraphicsBeginImageContext(size)
self.draw(in: CGRect(x: 0, y: 0, width: targetWidth, height: targetHeight))
//根據(jù)size 返回圖形大小
let newImg : UIImage = UIGraphicsGetImageFromCurrentImageContext()!
//關(guān)閉上下文
UIGraphicsEndImageContext()
return newImg
}
/* 圖片模糊 */
func blurImage(value:NSNumber) -> UIImage {
// CoreImage
let context = CIContext(options: [kCIContextUseSoftwareRenderer: true])
//根據(jù)UIImage 創(chuàng)建 CIImage類型郁副,進行操作,然后再返回 UIImage類型
let ciImg = CIImage(image: self)
//濾鏡
let blurFilter = CIFilter(name: "CIGaussianBlur")
blurFilter?.setValue(ciImg, forKey: kCIInputImageKey)
//設(shè)置模糊程度
blurFilter?.setValue(value, forKey: "inputRadius")
let imageRef = context.createCGImage((blurFilter?.outputImage)!, from: (ciImg?.extent)!)
let newImg = UIImage(cgImage: imageRef!)
return newImg
}
/*
出現(xiàn)問題:因為在模糊的時候循未,邊緣會變成半透明的狀態(tài)艰山,所以理想狀況是可以對原圖像進行適當(dāng)放大涡戳,選擇使用CIAffineClamp在模糊之前對圖像進行處理执解。
*/
func blurImageAnother(value:NSNumber) -> UIImage {
// CoreImage
let context = CIContext(options: [kCIContextUseSoftwareRenderer: true])
//根據(jù)UIImage 創(chuàng)建 CIImage類型帝洪,進行操作款青,然后再返回 UIImage類型
let inputImage = CIImage(image: self)
//濾鏡
let affineClampFilter = CIFilter(name: "CIAffineClamp")
let xform = CGAffineTransform(scaleX: 1.0, y: 1.0)
affineClampFilter?.setValue(inputImage, forKey: kCIInputImageKey)
affineClampFilter?.setValue(NSValue.init(cgAffineTransform: xform), forKey: "inputTransform")
let outinputImg = affineClampFilter?.outputImage!
let blurFilter = CIFilter(name: "CIGaussianBlur")
blurFilter?.setValue(outinputImg, forKey: kCIInputImageKey)
//設(shè)置模糊程度
blurFilter?.setValue(value, forKey: "inputRadius")
let imageRef = context.createCGImage((blurFilter?.outputImage)!, from: (inputImage?.extent)!)
let newImg = UIImage(cgImage: imageRef!)
return newImg
}
}
UIImage+Extension
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門屏箍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人橘忱,你說我怎么就攤上這事赴魁。” “怎么了鹦付?”我有些...
- 文/不壞的土叔 我叫張陵尚粘,是天一觀的道長。 經(jīng)常有香客問我敲长,道長郎嫁,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任祈噪,我火速辦了婚禮泽铛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辑鲤。我一直安慰自己盔腔,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著弛随,像睡著了一般瓢喉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上舀透,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼遂跟!你這毒婦竟也來了逃沿?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布谅阿,位于F島的核電站,受9級特大地震影響酬滤,放射性物質(zhì)發(fā)生泄漏极景。R本人自食惡果不足惜凉敲,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧筑悴,春花似錦魏宽、人聲如沸呆馁。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至河泳,卻和暖如春沃呢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拆挥。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- category and extension的官方文檔 類別的作用 將類的實現(xiàn)分散到多個不同文件或多個不同框架中:...
- Jianshu.com does not support MathJax, to view the math eq...
- 剛開始學(xué)習(xí)分類和類擴展的時候很茫然,什么是分類痹届,什么是類擴展呻待,他們分別用在什么場合,各有哪些不能被替代的特點队腐?后來...
- 你不經(jīng)意間的一句話蚕捉,于我而言就像摩斯密碼,需要花費心血來解讀它柴淘。 前年 夏橙剛剛步入人生當(dāng)中的一個新的...