您的位置:首页 > 移动开发 > IOS开发

iOS程序猿之图片压缩

2016-02-26 14:49 453 查看

iOS图片压缩

在开发中,我们经常会遇到需要上传图片到服务器上,如果图片过大就会消耗大量的时间,对于图片大小的处理分两个方面,一个是图片尺寸,一个是图片的所占内存的大小

- (NSData *)compressedImageDataWithImage:(UIImage *)img
{
CGFloat compressFraction = 0.8; // 尺寸压缩比例
CGSize imageSize = img.size;
CGFloat newWidth;
CGFloat newHeight;
if (imageSize.height > IMAGE_MAX_HEIGHT) {
compressFraction = compressFraction*IMAGE_MAX_HEIGHT/imageSize.height;
}
if (imageSize.width*compressFraction > IMAGE_MAX_WIDTH) {
compressFraction = compressFraction*IMAGE_MAX_WIDTH/imageSize.width;
}
newHeight = (imageSize.height)*compressFraction;
newWidth = (imageSize.width)*compressFraction;
CGSize newSize = CGSizeMake(newWidth, newHeight);
// Create a graphics image context // 创建图片上下文
UIGraphicsBeginImageContext(newSize);
// Tell the old image to draw in this new context, with the desired
// new size 根据新大小重新绘制图片
[img drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
// Get the new image from the context
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
// End the context
UIGraphicsEndImageContext();

// 压缩图片的大小
return UIImageJPEGRepresentation(newImage, 0.7); // 0.7是内存压缩比例

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: