iOS開發技巧之:圖片壓縮成指定的大小
阿新 • • 發佈:2018-11-10
iOS中,我們為了節省記憶體,需要對圖片來進行處理,來優化程式,提高程式的效率,下面是一個根據自己的要求來重新設定圖片的大小:
一、壓縮圖片有兩種方式,第一種是壓縮圖片的大小,重新生成圖片的尺寸:如下
[html] view plain copy print ?
- /**
- * 壓縮圖片到指定尺寸大小
- *
- * @param image 原始圖片
- * @param size 目標大小
- *
- * @return 生成圖片
- */
- -(UIImage *)compressOriginalImage:(UIImage *)image toSize:(CGSize)size{
- UIImage * resultImage = image;
- UIGraphicsBeginImageContext(size);
- [resultImage drawInRect:CGRectMake(00, 0, size.width, size.height)];
- UIGraphicsEndImageContext();
- return image;
- }
二、第二種是修改圖片的檔案大小:如下
[html] view plain copy print ?
- /**
- * 壓縮圖片到指定檔案大小
- *
- * @param image 目標圖片
- * @param size 目標大小(最大值)
- *
- * @return 返回的圖片檔案
- */
- - (NSData *)compressOriginalImage:(UIImage *)image toMaxDataSizeKBytes:(CGFloat)size{
- NSData * data = UIImageJPEGRepresentation(image, 1.0);
- CGFloat dataKBytes = data.length/1000.0;
- CGFloat maxQuality = 0.9f;
- CGFloat lastData = dataKBytes;
- while (dataKBytes > size && maxQuality > 0.01f) {
- maxQuality = maxQuality - 0.01f;
- data = UIImageJPEGRepresentation(image, maxQuality);
- dataKBytes = data.length / 1000.0;
- if (lastData == dataKBytes) {
- break;
- }else{
- lastData = dataKBytes;
- }
- }
- return data;
- }
這是壓縮圖片的兩種方式。
[html] view plain copy print ?
原文連結:http://blog.csdn.net/dkq972958298/article/details/52750741