根据UIImage对象计算文件大小
2012-12-22 17:27
281 查看
1. 比较简便的一种做法:
UIImageJPEGRepresentation(Image, 1.0),然后根据此方法返回的 NSData 对象 的length 来判断字节数;
2. 方法1 有一个问题 就是如果图片很大的话, 会遇到 内存紧张时 奔溃的情况,所以最好不用将图片在加载到内存的方法, 如果有图片路径可以采用文件来判断,如果没有,下面的代码可以计算出 UIImage 对象转化为 bitmap 格式的 大小:
UIImage *scaleImage = [info objectForKey:UIImagePickerControllerOriginalImage];
int perMBBytes = 1024*1024;
CGImageRef cgimage = scaleImage.CGImage;
size_t bpp = CGImageGetBitsPerPixel(cgimage);
size_t bpc = CGImageGetBitsPerComponent(cgimage);
size_t bytes_per_pixel = bpp / bpc;
long lPixelsPerMB = perMBBytes/bytes_per_pixel;
long totalPixel = CGImageGetWidth(scaleImage.CGImage)*CGImageGetHeight(scaleImage.CGImage);
long totalFileMB = totalPixel/lPixelsPerMB;
但是 bitmap 格式是未压缩的,所以算出来的值比实际文件要大,期待有牛人来帮我解答这时该怎么做。。
UIImageJPEGRepresentation(Image, 1.0),然后根据此方法返回的 NSData 对象 的length 来判断字节数;
2. 方法1 有一个问题 就是如果图片很大的话, 会遇到 内存紧张时 奔溃的情况,所以最好不用将图片在加载到内存的方法, 如果有图片路径可以采用文件来判断,如果没有,下面的代码可以计算出 UIImage 对象转化为 bitmap 格式的 大小:
UIImage *scaleImage = [info objectForKey:UIImagePickerControllerOriginalImage];
int perMBBytes = 1024*1024;
CGImageRef cgimage = scaleImage.CGImage;
size_t bpp = CGImageGetBitsPerPixel(cgimage);
size_t bpc = CGImageGetBitsPerComponent(cgimage);
size_t bytes_per_pixel = bpp / bpc;
long lPixelsPerMB = perMBBytes/bytes_per_pixel;
long totalPixel = CGImageGetWidth(scaleImage.CGImage)*CGImageGetHeight(scaleImage.CGImage);
long totalFileMB = totalPixel/lPixelsPerMB;
但是 bitmap 格式是未压缩的,所以算出来的值比实际文件要大,期待有牛人来帮我解答这时该怎么做。。
相关文章推荐
- 根据byte计算文件大小
- 37-给UIImage,NSString添加扩展方法(根据内容拉伸图片,根据内容计算文本大小)
- 用MFC实现代码获取当前EXE 执行的绝对路径,用于扩展相对路径扩展,以及计算文件大小功能
- 多媒体——图像文件大小的计算
- 根据屏幕大小加载文件
- 文件部分-----(5)二进制文件内容大小的计算
- 读入文件数据,根据竖线分割,并存入对象。
- 计算对象大小
- Java 文件大小以M为单位计算方法
- 音视频文件码率与大小计算
- Android 如何根据设置文字大小动态计算TextView长度、动态设置Relativelayout布局
- Debug记录 - taotao项目 - FTPClient对象 storeFile方法 很慢 上传文件大小为 0
- 计算文件大小和格式化
- 计算某个文件或文件夹的大小 文件夹内可能含有子文件夹
- java 计算文件或目录大小
- 图片格式及文件大小计算
- Android计算文件夹大小、文件大小单位转换、删除文件夹及其内容
- 音视频 帧率 码率 文件大小 计算
- 在项目中根据配置文件路径生成File对象的方法
- 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间