您的位置:首页 > 产品设计 > UI/UE

根据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 格式是未压缩的,所以算出来的值比实际文件要大,期待有牛人来帮我解答这时该怎么做。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: