//sdk中提供了方法可以直接調用
UIImage *img = [UIImage imageNamed:@"some.png"];
NSData *dataObj = UIImageJPEGRepresentation(img, 1.0);
//下面是sdk中UIImage.h頭文件中的內容
UIKIT_EXTERN NSData *UIImagePNGRepresentation(UIImage *image);
// return image as PNG. May return nil if image has no CGImageRef or invalid bitmap format
UIKIT_EXTERN NSData *UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality);
// return image as JPEG. May return nil if image has no CGImageRef or invalid bitmap format. compression is 0(most)..1(least)
JPEG的轉換方法里面第二個參數是壓縮系數,可以有效的減小圖片的大小。UIImagePNGRepresentation(UIImage* image) 要比UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的圖片數據量大很多。項目中做圖片上傳之前,經過測試同一張拍照所得照片png大小在8M,而JPG壓縮系數為0.75時候,大小只有1M。而且,將壓縮系數降低對圖片視覺上並沒有太大的影響。