我们已经为ImageResizer实现了基本服务器,但我们还有一个需求。我们正在处理用户上传的图像。有时,用户希望上传5MB,10 5MB,甚至30 5MB的图像(有些来自监控录像,这是预料中的)。但是我们不想在超过某个阈值时存储完整的图像大小。我不是成像专家--也许我们应该使用客户端ImageResizer API来设置dpi,还是最大宽度/最大高度?缩小图像大小的最佳实践是什么?
如果超过指定的大小,请查看FileContentLength并执行?maxwidth=1000&maxheight=1000?
查看图像的宽度/高度,并相应地缩小?目前,ImageResizer无法“获取”图像维数。
我看过this的帖子,但我们不想在缩略图(150x150)图片上这么做。
发布于 2015-09-30 16:18:39
您关心文件大小或类型/分辨率吗?如果是前者,就这么做吧
if (post.FileContentLength > MAX_SIZE){
//Use ImageResizer
}else{
//store as-is
}否则,始终使用ImageResizer并指定&maxwidth=3200&maxheight=3200。
如果您担心存储或带宽,那么文件大小可能就足够了。
保留文件的缺点是:元数据将被保留,损坏或不对web友好的图像格式将保持网络不友好。非常高分辨率的图像有时可以压缩到非常小的文件大小;没有线性相关性,所以如果你的消费者(比如移动设备)在高像素的图像上崩溃,那么你可能会遇到麻烦。
保留文件的好处是:用户可能已经优化了他们的图像,所以您不会使其“更糟”。元数据将被保留(如果这是件好事)。
通常,出于文件大小的原因,我们建议只在存储之前修改上传图像,然后使用ImageResizer URL和Slimmage.js重新压缩所有图像,以确保客户端为他们的设备获得合适的图像。
https://stackoverflow.com/questions/32869819
复制相似问题