- 浏览: 85091 次
- 性别:
- 来自: 成都
最新评论
压缩图片,如果图片大于100kb,就循环压缩
- 博客分类:
- iPhone开发
// 压缩图片,如果图片大于100kb,就循环压缩
+ (NSData *)compressionWithImage:(UIImage *)image{
// 先按宽度压缩
UIImage *newImage = [image resizeImageGreaterThan:480];
NSData *data;
float quality = 1.0f;
if (UIImageJPEGRepresentation(newImage, quality)) {
data = UIImageJPEGRepresentation(newImage, quality);
while (data.length / 1024.0f > 100 && quality > 0.5) {
quality -= 0.1f;
data = UIImageJPEGRepresentation(newImage, quality);
}
}
if (data == nil) {
data = UIImageJPEGRepresentation(newImage, 0.5);
}
return data;
}
----mark
// 这里是UIImage的一个扩展,按宽度压缩
#import "UIImage+Resize.h"
@implementation UIImage (Resize)
- (UIImage*)resizeImageGreaterThan:(CGFloat)maxL {
UIImage * res;
UIImage * img = self;
res = img;
float height = img.size.height;
float width = img.size.width;
float bigger = height > width ? height : width;
float coefficient = 1.0;
int maxPix = maxL;
if (bigger > maxPix) {
coefficient = maxPix / bigger;
res = [img resizeImageWithNewSize:CGSizeMake(width * coefficient, height * coefficient)];
}
return res;
}
- (UIImage*)resizeImageWithNewSize:(CGSize)newSize
{
CGFloat newWidth = newSize.width;
CGFloat newHeight = newSize.height;
// Resize image if needed.
float width = self.size.width;
float height = self.size.height;
// fail safe
if (width == 0 || height == 0)
return self;
//float scale;
if (width != newWidth || height != newHeight) {
UIGraphicsBeginImageContext(CGSizeMake(newWidth, newHeight));
[self drawInRect:CGRectMake(0, 0, newWidth, newHeight)];
UIImage *resized = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//NSData *jpeg = UIImageJPEGRepresentation(image, 0.8);
return resized;
}
return self;
}
@end
#import <UIKit/UIKit.h>
@interface UIImage (Resize)
/*
* brife 缩放图片
* maxL 图片的高度
*/
- (UIImage*)resizeImageGreaterThan:(CGFloat)maxL;
@end
+ (NSData *)compressionWithImage:(UIImage *)image{
// 先按宽度压缩
UIImage *newImage = [image resizeImageGreaterThan:480];
NSData *data;
float quality = 1.0f;
if (UIImageJPEGRepresentation(newImage, quality)) {
data = UIImageJPEGRepresentation(newImage, quality);
while (data.length / 1024.0f > 100 && quality > 0.5) {
quality -= 0.1f;
data = UIImageJPEGRepresentation(newImage, quality);
}
}
if (data == nil) {
data = UIImageJPEGRepresentation(newImage, 0.5);
}
return data;
}
----mark
// 这里是UIImage的一个扩展,按宽度压缩
#import "UIImage+Resize.h"
@implementation UIImage (Resize)
- (UIImage*)resizeImageGreaterThan:(CGFloat)maxL {
UIImage * res;
UIImage * img = self;
res = img;
float height = img.size.height;
float width = img.size.width;
float bigger = height > width ? height : width;
float coefficient = 1.0;
int maxPix = maxL;
if (bigger > maxPix) {
coefficient = maxPix / bigger;
res = [img resizeImageWithNewSize:CGSizeMake(width * coefficient, height * coefficient)];
}
return res;
}
- (UIImage*)resizeImageWithNewSize:(CGSize)newSize
{
CGFloat newWidth = newSize.width;
CGFloat newHeight = newSize.height;
// Resize image if needed.
float width = self.size.width;
float height = self.size.height;
// fail safe
if (width == 0 || height == 0)
return self;
//float scale;
if (width != newWidth || height != newHeight) {
UIGraphicsBeginImageContext(CGSizeMake(newWidth, newHeight));
[self drawInRect:CGRectMake(0, 0, newWidth, newHeight)];
UIImage *resized = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//NSData *jpeg = UIImageJPEGRepresentation(image, 0.8);
return resized;
}
return self;
}
@end
#import <UIKit/UIKit.h>
@interface UIImage (Resize)
/*
* brife 缩放图片
* maxL 图片的高度
*/
- (UIImage*)resizeImageGreaterThan:(CGFloat)maxL;
@end
发表评论
-
block语法
2015-12-11 10:34 486How Do I Declare A Block in Obj ... -
禁止WebView长按事件
2015-11-04 16:05 1146在webViewDidFinishLoad调用: - (voi ... -
一个公共的TableView,然后不会为每个TableView加delegate和datasource
2015-10-27 10:46 966.h // // PublicTableView.h // ... -
记录一些不错的文章
2015-10-09 20:04 576好久没有写ios了,这篇文章主要是记录一些看到的不错的文章: ... -
封装录音View
2015-06-26 16:13 570使用方法: 直接把XHRecrodView添加到control ... -
AFNetWorking请求WebService
2015-06-15 17:22 793.h #import <Foundation/Foun ... -
weakSelf
2015-05-11 14:44 535快速的定义一个weakSelf 当然是用于block里面啦 ... -
UINavigationItem 位置问题
2015-05-06 14:09 992解决ios7 UINavigationItem 位置偏移问题 ... -
ios Icon及启动图集合
2015-05-04 09:13 620做icon和启动图按这个尺寸来 -
把图片压缩到指定大小(kb)
2015-01-19 16:32 4979UIImage *image=[UIImage imageNa ... -
获取当前时间属于该月的第几周
2015-01-06 15:04 1076+(NSInteger) indexWeekOfDateInM ... -
iOS开发的一些奇巧淫技
2014-12-31 11:13 735iOS开发的一些奇巧淫技 http://www.coco ... -
iOS中使用block进行网络请求回调
2014-06-23 16:26 5501转自: http://www.tuicool.com/arti ... -
ios程序异常crash捕获与拦截
2014-06-06 22:09 528转:http://www.sharejs.com/codes/ ... -
设置TabBar选中与未选中图片
2014-04-29 18:07 655-(void)settingTabbarController{ ... -
自定义的NavigationBar,我觉得还不错
2014-04-28 18:03 556地址1:http://code.cocoachina.com ... -
UITableView点击展开cell
2014-04-25 15:14 103531.定义控制cell的两个变量 //最近打开的ind ... -
分享一个非常好的东西
2014-04-09 17:44 683http://makeappicon.com/ 传一个10 ... -
IOS 基于APNS消息推送原理与实现(JAVA后台)
2014-04-09 17:30 903转:http://cshbbrain.iteye.com/bl ... -
ios开发申请发布证书和发布应用到app store
2014-03-21 11:03 7071.http://www.360doc.com/content ...
相关推荐
封装的工具设计思路,首先做长宽压缩,如果图片太大,先做长宽压缩,暂定大于2M(大小读者可以自己设置)循环做长宽压缩(暂定长宽都压缩一半,山样读者可以自己设置大小),其次做质量压缩,大于1M,循环做质量压缩...
图片压缩图片压缩图片压缩图片压缩图片压缩图片图片压缩压缩
目前一般手机的相机都能达到800万像素,像我的Galaxy Nexus才500万像素,拍摄的照片也有1.5M左右。这么大的照片上传到服务器,不仅浪费流量,同时还... 此demo 解决了Android压缩图片到100K以下并保持不失真的高效方法
java图片压缩处理(可以压缩为任意大小
使用C#完成的图像压缩,实现质量压缩,大小压缩,批量压缩。可选择读取图像输出到另一图像,可实现从界面中读取图像输出到图像,附全部代码+注释+开发过程。
java各种方式压缩上传图片,包括按指定宽度,高度压缩。指定比例压缩等
一般图片处理后才几KB,很大的图片最多100来KB,非常实用。 <br>使用方法:(一次处理一张) 1. 保存后将所在文件夹窗口缩小到只有该图标的大小,或直接将它的快捷方式放到快速启动中。 2. 打开需要处理...
C#/Core下,最完美的图片压缩,支持各种图片格式,无损压缩,无损剪切,按尺寸/比例压缩、剪切图片,根据自己需要任意处理图片
相机首先保存到了指定目录后,用Glide加载原图。然后在用框架压缩图片大小为:100KB左右。图片像素值基本没什么改变。希望对各位有用。
opencv压缩图片,设置压缩率,因无法设置0资源下载,故提供百度云链接: https://pan.baidu.com/s/1Qw30XwwCXNq1SBqXWmsIvg 密码: u3jq
H5 上传图片 拍照 压缩图片 上传 form file 表单提交,直接请求接口就可以了,下载了就能用,自己定义接口请求,实测绝对可用,不能用打我
很好用的图片压缩,不会影响图片质量,好用,希望能帮到某些朋友
它是一个非常专业的高压缩率不失真的图片压缩软件,例如原图440KB,用JPEG Optimizer压缩后120KB左右,怎么样?并且压缩后的效果与原图质量差不多呢,不失真的。压缩后再发出去。绝对快 JPG与GIF的应用越来越广泛...
使用两中方法进行压缩,可以只改变图片大小,如,原图片100kb,压缩后变成40kb。并且不改变宽高。 一.使用ImageMagick进行压缩类-Aa.java 需要做以下配置: 1.将jmagick.dll加入jdk\bin目录中 2.将jmagick.dll加入到...
基于JNI压缩图片高效不失真,如果需要压到指定范围,亦可以使用该方法循环压缩。绝比高效,一句话代码基于JNI压缩图片高效不失真,如果需要压到指定范围,亦可以使用该方法循环压缩。绝比高效,一句话代码
图片压缩软件【压缩图片】 图片压缩软件 文件小,压缩能力强
java中根据设置的宽高等比例压缩图片文件 先保存原文件,再压缩、上传
单张上传图片压缩
鲁班压缩图片Android Studio开发版,需要java1.8
图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩...