iOS返回不同大小的图像?
我想上传一个高达8MB的图像。因此,为了进行测试,我在我的照片库中添加了大小为4.2MB(尺寸:3264x2443)的图像。但当我选择上传图像时,我已经检查了图像的大小。但它返回9840076字节,即9.3842 mb,实际为4.2 mb。因此大小为4.2MB的图像无法上载 我使用下面的方法来计算图像的大小,返回9840076字节iOS返回不同大小的图像?,ios,Ios,我想上传一个高达8MB的图像。因此,为了进行测试,我在我的照片库中添加了大小为4.2MB(尺寸:3264x2443)的图像。但当我选择上传图像时,我已经检查了图像的大小。但它返回9840076字节,即9.3842 mb,实际为4.2 mb。因此大小为4.2MB的图像无法上载 我使用下面的方法来计算图像的大小,返回9840076字节 [UIImageJPEGRepresentation(imageRerurnedFromPhotoGallery , 1.0) length]; 我在计算图像的大小
[UIImageJPEGRepresentation(imageRerurnedFromPhotoGallery , 1.0) length];
我在计算图像的大小时是否做错了什么?
请告诉我正确的方法。
提前谢谢 你为什么不这样试试 您将获得以字节为单位的大小
NSData *data = [[NSData alloc] initWithData:UIImageJPEGRepresentation((Your Image), 0.5)];
int imageSize = data.length;
NSLog(@"size of image is: %i ", imageSize);
您正在对图像进行解码,然后重新编码,这就是文件大小可能不同的原因。如果根本不需要修改图像,请使用
ALAssetsLibrary
将图像作为NSData
对象而不是UIImage对象获取。然后,当您查看NSData
的length
属性时,您的文件大小将完全匹配。查看一些示例代码。我不理解这一点:“它返回9840076字节,即9.3842 mb,实际为4.2 mb”。他说图像大小为4.2 mb,但通过该代码,他得到了9.3 mb,这是错误的uiImageJPEGresentation(…)
将返回NSData
实例,返回字节长度。OP在问题中已经提到了这一点。在上面的代码中,实际上是在内存中复制4.2MB的图像数据,这是不必要的。您所做的唯一更改是JPEG quality=0.5
,它将斜切图像像素。