如何停止Imageresizer增加图片大小

时间:2014-05-09 11:59:58

标签: imageresizer

我们有以下代码:

var destStream = new MemoryStream();
ImageBuilder.Current.Build(pictureBinary, destStream, new ResizeSettings());
var result = destStream.ToArray();

" pictureBinary"这里的变量是输入图像文件的内容数组。如果我做对了,那么" destStream"的大小。应与"结果"相同因为没有任何真正的大小调整。但由于某些原因,Imageresizer会增加上传图片的文件大小。

您可以使用以下链接下载输入和输出文件 - http://downloads.nopcommerce.com/imageresizer_pictures/input.pnghttp://downloads.nopcommerce.com/imageresizer_pictures/output.png

更新:即使我尝试调整图片大小也会出现同样的问题。我原来的图片尺寸是440x350px。当我尝试将其大小调整为300x238px时,其文件大小会增加几倍。为什么?我不应该发生

1 个答案:

答案 0 :(得分:2)

ImageResizer始终会重新编码您通过托管API提供给它的图像。另一方面,URL API仅在您为其提供命令时处理图像。

应始终重新编码来自不受信任数据源的图像。

以下问题与您的问题非常相似,并会为您提供更多详细信息

ImageResizer将提供比其他地方更好的Jpeg压缩 - 但PNG压缩是一种不同的算法类。给定小时和千兆字节的RAM,您可以制作非常小的PNG文件。如果你想快速完成,你只能使用1/50的优化。