与 CSS 相比,使用 ImageMagick 调整图像大小有什么好处?

What is the benefit of resizing images with ImageMagick as opposed to CSS?

所以我在 rails 上的 ruby 应用程序具有允许用户上传图片的功能。我知道 Active Storage 可以像这样使用 ImageMagick 调整图像大小

model.image.variant(resize: "100X100")

不过,您也可以在 CSS 中这样做:

<%= image_tag(rails_blob_url("file_name.jpg"), width: '100px', height: '100px') %>

你应该使用哪一个?我应该使用 ImageMagick 还是 CSS?

第一种方法的优点是最终文件的大小。

当您使用 imagemagick 作为缩放器时,文件的最终输出是一个实际的 100x100 文件,比方说,它的权重为 100KB。然后你将这个文件发送到前端,这将是一个只有 100KB 大小的资产。

另一方面,如果您只在视图中调整它的大小,原始资产将被渲染,然后在前端调整大小,但是服务器和客户端将不得不处理一个,比方说,1MB 的文件100KB,这将影响应用程序的性能。

CSS 最多可能在放大或缩小时进行线性插值。但是 ImageMagick 有许多高级插值过滤器,而不仅仅是像素复制或线性插值可以产生更清晰的结果 and/or 更少的伪影。参见 https://imagemagick.org/Usage/filter/ and https://imagemagick.org/Usage/filter/nicolas/