我是用這個函數(shù)對圖片進行壓縮的NSData*fData=UIImageJPEGRepresentation(self.photo,1.0);這樣,圖片是7MB這樣。假如壓縮級別是0.5,如:NSData*fData=UIImageJPEGRepresentation(self.photo,0.5);圖片壓縮之后,大小是1MB左右。?,F(xiàn)在問題來了。一張圖片,壓縮級別是0.5的話,大小不會變成原來的0.5倍。我算了一下,大概是0.14.所以壓縮級別和這個大小好像不能形成一定的關聯(lián)。比如我一張500KB的圖片,0.5的壓縮級別。大小可能才100多KB。對我來說,正好。但是假如像上面那樣,7MB的大小,按照這樣的壓縮率,就是1MB.所以圖片時大時小。對用戶來說,體驗肯定比較差。我想動態(tài)的壓縮圖片,讓沒有wifi的情況下,無論多少大小的圖片,壓縮之后大小最大200KB。有wifi,壓縮大小最大700KB。目前有比較好的算法嗎?或者開源的函數(shù)。--------------------------貼一個相關函數(shù)//圖片壓縮到指定大小-(UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize{UIImage*sourceImage=self;UIImage*newImage=nil;CGSizeimageSize=sourceImage.size;CGFloatwidth=imageSize.width;CGFloatheight=imageSize.height;CGFloattargetWidth=targetSize.width;CGFloattargetHeight=targetSize.height;CGFloatscaleFactor=0.0;CGFloatscaledWidth=targetWidth;CGFloatscaledHeight=targetHeight;CGPointthumbnailPoint=CGPointMake(0.0,0.0);if(CGSizeEqualToSize(imageSize,targetSize)==NO){CGFloatwidthFactor=targetWidth/width;CGFloatheightFactor=targetHeight/height;if(widthFactor>heightFactor)scaleFactor=widthFactor;//scaletofitheightelsescaleFactor=heightFactor;//scaletofitwidthscaledWidth=width*scaleFactor;scaledHeight=height*scaleFactor;//centertheimageif(widthFactor>heightFactor){thumbnailPoint.y=(targetHeight-scaledHeight)*0.5;}elseif(widthFactor
ios 對圖片進行壓縮
搖曳的薔薇
2019-04-16 20:26:40