用Linux命令优化网页图片

为网页上的缩略图和横幅图片生成经过调整和优化的图片。

以前我在处理网页工作时,我对图像敬而远之。处理和优化图像既不精确又费时。

后来我发现了一些命令,改变了我的想法。为了创建网页,我使用 Jekyll,所以我在说明中包括了它。然而,这些命令也可以用于其他静态网站生成器。

Linux 上的图像命令

对我来说有用的命令是optipng、jpegoptim,当然还有古老的imagemagick。它们一起使处理图像变得容易管理,甚至可以自动化。

下面是我如何使用这些命令实现我的解决方案的概述。我把文章图片放在我的static/images文件夹中。在那里,我生成了所有 PNG 和 JPG 图片的两个副本:

一个裁剪过的缩略图版本,尺寸为 422×316一个更大的横幅版本,尺寸为 1024×768

然后,我把每个副本(缩略图和横幅)放入自己的文件夹,并利用 Jekyll 的自定义变量来确定文件夹路径。下面我将更详细地介绍这些步骤中的每一步。

安装

要跟上我的解决方案,请确保你已经安装了所有的命令。在 Linux 上,你可以使用软件包管理器安装optipng、jpegoptim和imagemagick。

在 Fedora、CentOS、Mageia 和类似系统上:

$ sudo dnf install optipng jpegoptim imagemagick

在 Debian、Elementary、Mint 和类似系统上:

$ sudo apt install optipng jpegoptim imagemagick

在 macOS 上,使用 MacPorts或Homebrew:

brewinstall optipng jpegoptim imagemagick

在 Windows 上,使用 Chocolatey。

为缩略图和横幅创建文件夹

安装完这些命令后,我在static/images下创建了新的文件夹。生成的缩略图放在img-thumbs,横幅放在img-normal。

$cdstatic/images$mkdir -p img-thumbs img-normal

创建了文件夹后,我把所有的 GIF、SVG、JPG 和 PNG 文件复制到这两个文件夹。我把 GIF 和 SVG 原封不动地用于缩略图和横幅图片。

$ cp content/*.gif img-thumbs/; cp content/*.gif img-normal/ $ cp content/*.svg img-thumbs/; cp content/*.svg img-normal/ $ cp content/*.jpg img-thumbs/; cp content/*.jpg img-normal/ $ cp content/*.png img-thumbs/; cp content/*.png img-normal/

处理缩略图

为了调整和优化缩略图的大小,我使用了三个命令。

我使用ImageMagick的mogrify命令来调整 JPG 和 PNG 的大小。因为我希望缩略图是 422×316,所以命令看起来像这样:

$cdimg-thumbs$mogrify -resize 422x316 *.png$mogrify -format jpg -resize 422x316 *.jpg

现在我用optipng优化 PNG,用jpegoptim优化 JPG:

$foriin*.png;dooptipng -o5 -quiet"$i";done$jpegoptim -sq *.jpg

在上述命令中:

对于optipng,-o5开关设置了优化的级别,0 是最低的。对于jpegoptim,-s剥离所有图像元数据,-q设置安静模式。

处理横幅

我处理横幅图片的方法与处理缩略图的方法基本相同,除了尺寸外,横幅图片的尺寸为 1024×768。

$cd..$cdimg-normal$mogrify -resize 1024x768 *.png$mogrify -format jpg -resize 1024x768 *.jpg$foriin*.png;dooptipng -o5 -quiet"$i";done$jpegoptim -sq *.jpg

配置 Jekyll 中的路径

img-thumbs目录现在包含我的缩略图,img-normal包含横幅。为了更轻松一些,我在Jekyll的_config.yml中把它们都设置为自定义变量。

content-images-path:/static/images/img-normal/ content-thumbs-images-path:/static/images/img-thumbs/

使用这些变量很简单。当我想显示缩略图时,我把content-thumbs-images-path加到图片上。当我想显示完整的横幅时,我在前面添加content-images-path。

{% if page.banner_img %} {%endif%}

总结

我可以对我的优化命令做几个改进。

使用rsync只复制改变过的文件到img-thumbs和img-normal是一个明显的改进。这样一来,我就不会一次又一次地重新处理文件。将这些命令添加到Git 提交前钩子或 CI 流水线中是另一个有用的步骤。

调整和优化图像以减少其大小,对用户和整个网页来说都是一种胜利。也许我减少图片尺寸的下一步将是 webp。

更少的字节通过电线传输意味着更低的碳足迹,但这是另一篇文章。目前,用户体验的胜利已经足够好了。

本文原载于作者的博客,已获授权转载。

via: https://opensource.com/article/21/12/optimize-web-images-linux

作者:Ayush Sharma选题:lujun9972译者:geekpi校对:wxy

本文由 LCTT原创编译,Linux中国荣誉推出

相关文章
weinxin
我的微信
微信扫一扫
744700076@qq.com
  • 本文由 发表于 2022年10月2日 03:34:54
  • 转载请务必保留本文链接:http://seo3g.com/seojc/jgyhjc/2025.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: