上传时自动质量

Automatic quality while uploading

我使用以下命令进行上传,效果很好:

Dim i As ImageResizer.ImageJob = New ImageResizer.ImageJob(file, "~/App_Themes/theme_yellow/uploads/" + vllid + ".jpg", New ImageResizer.Instructions("width=1200;quality=60;format=jpg"))
i.Build()

这样一来,无论大小,每张图片的质量都会降低到 60%。

我的问题是:有没有办法降低每次上传的质量,使每个上传文件的文件大小大约为 . 200KB?如果可能的话,我对应用的质量百分比不再感兴趣。类似于 ("widht=1200; format=jpg", maxfilesize=200KB")?

计算压缩率的唯一方法是执行压缩。压缩很慢,因此,重复压缩图像直到 'close' 到所需的大小将非常慢。

您可以通过使用 for 循环并写入 MemoryStream 实例而不是文件来执行此操作。如果是你想要的大小,就把内存流复制到磁盘(记得每次都要找回开头)。

我不建议这样做,除非你有小图片,或者有大量备用计算资源并且不关心 HTTP 响应时间。