Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS返回不同大小的图像?_Ios - Fatal编程技术网

iOS返回不同大小的图像?

iOS返回不同大小的图像?,ios,Ios,我想上传一个高达8MB的图像。因此,为了进行测试,我在我的照片库中添加了大小为4.2MB(尺寸:3264x2443)的图像。但当我选择上传图像时,我已经检查了图像的大小。但它返回9840076字节,即9.3842 mb,实际为4.2 mb。因此大小为4.2MB的图像无法上载 我使用下面的方法来计算图像的大小,返回9840076字节 [UIImageJPEGRepresentation(imageRerurnedFromPhotoGallery , 1.0) length]; 我在计算图像的大小

我想上传一个高达8MB的图像。因此,为了进行测试,我在我的照片库中添加了大小为4.2MB(尺寸:3264x2443)的图像。但当我选择上传图像时,我已经检查了图像的大小。但它返回9840076字节,即9.3842 mb,实际为4.2 mb。因此大小为4.2MB的图像无法上载

我使用下面的方法来计算图像的大小,返回9840076字节

[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
,它将斜切图像像素。