CGImage和CGImageRef這兩個應當是用來重繪圖形的類,它們在應用時是按照圖像的像素矩陣來繪製圖片的,它們能夠用來處理bitmap。函數
CGImageRef與UIImage的互轉spa
CGImageRef轉換成UIImage CGImageReform
iOffscreen = CGBitmapContextCreateImage(context);圖片
UIImage* image = [UIImage imageWithCGImage: iOffscreen];ci
UIImage轉換成CGImageRefit
UIImage *loadImage=[UIImage imageNamed:@"comicsplash.png"];io
CGImageRef cgimage=loadImage.CGImage;cgi
壓縮圖片:map
在Iphone上有兩種讀取圖片數據的簡單方法: UIImageJPEGRepresentation和UIImagePNGRepresentation. UIImageJPEGRepresentation函數須要兩個參數:圖片的引用和壓縮係數.而UIImagePNGRepresentation只須要圖片引用做爲參數.經過在實際使用過程當中,比較發現: UIImagePNGRepresentation(UIImage* image) 要比UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的圖片數據量大不少.譬如,一樣是讀取攝像頭拍攝的一樣景色的照片, UIImagePNGRepresentation()返回的數據量大小爲199K ,而 UIImageJPEGRepresentation(UIImage* image, 1.0)返回的數據量大小隻爲140KB,比前者少了50多KB.若是對圖片的清晰度要求不高,還能夠經過設置 UIImageJPEGRepresentation函數的第二個參數,大幅度下降圖片數據量.譬如,剛纔拍攝的圖片, 經過調用UIImageJPEGRepresentation(UIImage* image, 1.0)讀取數據時,返回的數據大小爲140KB,但更改壓縮係數後,經過調用UIImageJPEGRepresentation(UIImage* image, 0.5)讀取數據時,返回的數據大小隻有11KB多,大大壓縮了圖片的數據量 ,並且從視角角度看,圖片的質量並無明顯的下降.所以,在讀取圖片數據內容時,建議優先使用UIImageJPEGRepresentation,並可根據本身的實際使用場景,設置壓縮係數,進一步下降圖片數據量大小.