如何压缩图像但不使用Xamarin IOS调整大小?

时间:2016-07-15 10:25:45

标签: xamarin xamarin.ios

我需要将图像上传到相当大的服务器,但是我想保持纵横比但是压缩文件的大小,因为我上传了多个文件。

1 个答案:

答案 0 :(得分:1)

如果您不想调整图片大小,那么将其作为JPEG和PNG发送将使其小于仅发送位图数据。您可以使用PNG或JPEG格式获取图像的NSData。每种格式都有一些优点/缺点,但JPEG允许牺牲质量以获得更多压缩。

*假设您有一个名为UIImage的{​​{1}}。

image

您还可以在循环中使用using(NSData pngImage = image.AsPNG()){ byte[] imageBytes = pngImage.ToArray(); // upload your image data, write to a file, etc. } // AsJPEG compression argument can be 0 to 1 // 0 is max compression (lowest quality), 1 is best quality using(NSData jpgImage = image.AsJPEG(0.0f)){ byte[] imageBytes = jpgImage.ToArray(); // upload your image data, write to a file, etc. } 来降低压缩值,以尝试将图像大小降至特定阈值以下。虽然这可能有点慢,所以你必须为特定用途增加收益。