与 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/
所以我在 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/