iOS 常用的图片压缩函数
来源:互联网 发布:公知怎么喷中国航母 编辑:程序博客网 时间:2024/05/16 10:19
原文出自:http://www.cnblogs.com/yswdarren/p/3611934.html
- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{ // 创建一个bitmap的context // 并把它设置成为当前正在使用的context UIGraphicsBeginImageContext(size); // 绘制改变大小的图片 [img drawInRect:CGRectMake(0,0, size.width, size.height)]; // 从当前context中创建一个改变大小后的图片 UIImage* scaledImage =UIGraphicsGetImageFromCurrentImageContext(); // 使当前的context出堆栈 UIGraphicsEndImageContext(); //返回新的改变大小后的图片 return scaledImage; }
等比例压缩-(UIImage *) imageCompressForSize:(UIImage *)sourceImage targetSize:(CGSize)size{ UIImage *newImage = nil; CGSize imageSize = sourceImage.size; CGFloat width = imageSize.width; CGFloat height = imageSize.height; CGFloat targetWidth = size.width; CGFloat targetHeight = size.height; CGFloat scaleFactor = 0.0; CGFloat scaledWidth = targetWidth; CGFloat scaledHeight = targetHeight; CGPoint thumbnailPoint = CGPointMake(0.0, 0.0); if(CGSizeEqualToSize(imageSize, size) == NO){ CGFloat widthFactor = targetWidth / width; CGFloat heightFactor = targetHeight / height; if(widthFactor > heightFactor){ scaleFactor = widthFactor; } else{ scaleFactor = heightFactor; } scaledWidth = width * scaleFactor; scaledHeight = height * scaleFactor; if(widthFactor > heightFactor){ thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5; }else if(widthFactor < heightFactor){ thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5; } } UIGraphicsBeginImageContext(size); CGRect thumbnailRect = CGRectZero; thumbnailRect.origin = thumbnailPoint; thumbnailRect.size.width = scaledWidth; thumbnailRect.size.height = scaledHeight; [sourceImage drawInRect:thumbnailRect]; newImage = UIGraphicsGetImageFromCurrentImageContext(); if(newImage == nil){ NSLog(@"scale image fail"); } UIGraphicsEndImageContext(); return newImage; }-(UIImage *) imageCompressForWidth:(UIImage *)sourceImage targetWidth:(CGFloat)defineWidth{ UIImage *newImage = nil; CGSize imageSize = sourceImage.size; CGFloat width = imageSize.width; CGFloat height = imageSize.height; CGFloat targetWidth = defineWidth; CGFloat targetHeight = height / (width / targetWidth); CGSize size = CGSizeMake(targetWidth, targetHeight); CGFloat scaleFactor = 0.0; CGFloat scaledWidth = targetWidth; CGFloat scaledHeight = targetHeight; CGPoint thumbnailPoint = CGPointMake(0.0, 0.0); if(CGSizeEqualToSize(imageSize, size) == NO){ CGFloat widthFactor = targetWidth / width; CGFloat heightFactor = targetHeight / height; if(widthFactor > heightFactor){ scaleFactor = widthFactor; } else{ scaleFactor = heightFactor; } scaledWidth = width * scaleFactor; scaledHeight = height * scaleFactor; if(widthFactor > heightFactor){ thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5; }else if(widthFactor < heightFactor){ thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5; } } UIGraphicsBeginImageContext(size); CGRect thumbnailRect = CGRectZero; thumbnailRect.origin = thumbnailPoint; thumbnailRect.size.width = scaledWidth; thumbnailRect.size.height = scaledHeight; [sourceImage drawInRect:thumbnailRect]; newImage = UIGraphicsGetImageFromCurrentImageContext(); if(newImage == nil){ NSLog(@"scale image fail"); } UIGraphicsEndImageContext(); return newImage;}
0 0
- iOS 常用的图片压缩函数
- iOS 图片的压缩
- iOS - 常用到的图片功能:截取当前屏幕/选择本地图片/图片压缩
- IOS图片压缩的类
- iOS 图片压缩的方法
- ios图片的压缩处理
- iOS常用小功能(获得屏幕图像、压缩图片、加边框、调整label的size)
- iOS常用小功能(获得屏幕图像、压缩图片、加边框、调整label的size)
- 图片压缩的常用方法帮助类
- iOS 史上最全的图片压缩方法集合
- iOS 中图片的压缩以及保存
- ios 图片压缩的两种方式
- iOS开发上传图片的压缩
- iOS中图片压缩的常见方法
- iOS中常见的图片压缩方法
- iOS之图片压缩的方法
- iOS中图片压缩的常见方法
- iOS 压缩图片的方法
- dell E6420 ubuntu无线网卡驱动安装
- opencv VS2010配置
- 92.BinaryTreeInorderTraversal
- Linux ALSA 声卡驱动之三:PCM设备的创建
- Android PendingIntent 不能跳转的问题总结
- iOS 常用的图片压缩函数
- mvc 验证登录
- 【好东西】简书助手
- 从消费者物联网聊点骇人的
- Java多线程
- ContentProvider实现数据共享
- VS2010程序部署与安装
- iOS客户端与JAVA服务器之间的RSA加密解密
- Ionic APP-Web SPA开发进阶(二)Ionic进阶之路由去哪了