如何压缩图像?

use*_*593 36 image-processing batch

我有 5,000 张图片需要压缩(以显示在我的网站上)。

我是 Ubuntu 的新手。那我该怎么办?

Gep*_*nzo 63

在这个问题中,“压缩”这个词似乎被误解了,但根据您希望看到的上下文,它仍然有效。

风景

如果我们直接在真实的生产环境中工作,那么 Web 设计人员、Web 开发人员和/或 Web 管理员需要“压缩”我们的图像文件,以便使它们足够“轻量级”以快速上传到我们的主机。如果我们在本地测试生产环境中工作,这不会影响。

很多答案似乎是指其他事情,主要是因为-可能-他们没有面对过这样的风景。这就是为什么我开始解释这个。

所以。让我们了解答案需要解决的问题:

  1. 图片必须是轻量级的
  2. 图片必须“压缩”以减少文件大小,但不能“reziised”,正如另一位用户指出的那样,该用户在此问题上指出了重复的JPG 批处理压缩和重命名(查找 -exec、xargs、管道?)
  3. 图片应该批量压缩,最好通过 GUI。

轻量级图片

我们先来了解一下什么是“轻量级图片”。

分辨率超过 1024 像素的高清图片可能具有较大的文件大小。我在此屏幕截图上提供了一个示例:

在此处输入图片说明

在此处输入图片说明

在文件属性窗口中,我们可以看到这是一个 9.5 MB 的文件,它会延迟很多上传,并且会延迟很多以便在网站上发布时在屏幕上呈现。

尽管如此,图像大小和网格分辨率对于高清晰度打印确实很有用。所以这是一个不同的场景,我不会在这个解释中介绍。

那么,我如何才能在网站中使用此图像,而无需等待数年才能上传并等待数年才能在我的网站中显示它?

该文件应该被压缩。

当我们谈论“压缩”时,我们明确需要改变它的质量,以使其适用于我们面临的情况。

因此,让我们将下一个放到终端中:

convert seminario-tabloide.png test.jpg
Run Code Online (Sandbox Code Playgroud)

这会将高清 PNG 格式转换为“压缩”的 JPG 格式,该格式本身就是一个较小的文件!它从 9.5 MB 到 2.4 MB。

在此处输入图片说明

还是大?

但是,2.4 MB 仍然是一个很大的文件大小。现在让我们使用一些其他的ImageMagick 转换命令来创建更小的文件:

convert test.jpg -quality 50% test-50p.jpg
Run Code Online (Sandbox Code Playgroud)

这是我们需要做的才能“压缩”图像。这将使图像质量降低 50%,并提供 938.4 KB <===(注意:千字节,甚至不是兆字节)文件大小。

我们可以通过在同一命令中通过以下方式调整百分比来进一步创建较小的文件大小:

convert test.jpg -quality 30% test-30p.jpg
Run Code Online (Sandbox Code Playgroud)

请记住,在这个例子中,我们降低了文件的质量,而不是图像尺寸。这将导致压缩文件在屏幕上呈现时不会受到视觉影响,但是在以大纸张尺寸(大于字母)打印时您会看到伪影。

调整大小 + 压缩 = 超级酷!

现在。我们可以做不同的事情。确实有几件事:我们可以首先调整图像大小并在此之后应用压缩,这将导致文件大小比原始文件小,并且将提供一个有用的图像以在屏幕上渲染,不太适合打印,但似乎我们需要在屏幕上而不是在打印的横幅中显示它,对吗?

所以让我们这样做:

convert seminario-tabloide.png -resize 1024x test-1024x.jpg
Run Code Online (Sandbox Code Playgroud)

使用此指令,我们要求将图像调整为 1024 像素宽,需要任意数量的像素,以免丢失纵横比。

现在……你猜怎么着?

文件大小从 9.5 MB 减少到...(请使用康加鼓的悬疑音乐)433.7 KILOBYTES

如果我们希望像这样最大程度地压缩最大压缩文件,我们将面临一些插入文件的开销数据,这将导致文件更大。所以我不建议你尝试,但如果你希望我做这个例子,好吧......我们开始吧!

convert test-1024x.jpg -quality 50% test-1024x-50p.jpg
Run Code Online (Sandbox Code Playgroud)

我们在单个命令中从 433.7 KB 增加到 176.2 KB。这个例子是成功的,但是不要指望任何练习会导致文件变小。但是在进行此类练习时,您可以获得很多乐趣。

批处理

哦!但我几乎忘记了一个需求:轻松地将此过程应用于大量图片。

对于这样的事情,我们可以用两个过程来完成。

终点站

这更快,更容易。所以让我们告诉终端我们需要在目录中的所有文件中运行相同的指令,之后我将解释其他指令。

全部转换为 1024px(您可以使用任何像素数量)

for i in *; do convert $i -resize 1024x $i-1024x.jpg; done;
Run Code Online (Sandbox Code Playgroud)

在这里,我们要求命令对目录中的所有文件运行相同的指令,应用转换并删除具有不同名称的副本,以便于选择。

按百分比降低目录中所有图片的质量(使用您可能希望的任何百分比):

for i in *-1024x.jpg; do convert $i -quality 50% $i-50p.jpg; done;
Run Code Online (Sandbox Code Playgroud)

在这里,我们要求调整大小的图像质量降低,以使其文件更小。

您可以使用这些命令并查看结果。经过几个小时的乐趣,您将成为专家。

鹦鹉螺脚本

2015年4月20日,我遇到了原问题的情况,所以我不得不做一些研究并就一个问题寻求帮助。这就是为什么现在我知道了很多。不要以为我天生就有这些知识,伙计。

如果您不习惯使用终端和/或希望使用 GUI 来简单地选择文件组并应用转换,您可以创建自己的 Nautilus 操作脚本,以便只需右键单击文件组并选择上下文菜单中的一个选项。

有关如何执行此操作的说明,请阅读此处的问题、答案和评论:如何使用 Nautilus-Actions 批量处理 JPG 图像以更改其质量?

祝你好运!

  • 这就是“教我钓鱼”的答案。ImageMagick `convert` 命令行技能非常有用。 (4认同)

Moh*_*ama 22

我使用Triimage超级简单易用。

只添加图片并压缩安装:

sudo apt-get install trimage
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • 我没有看到任何可以定义我想要的压缩程度、文件大小等的设置。 (6认同)

Kol*_*n N 5

在 Ubuntu 命令行中执行此操作的简单方法是使用ImageMagick

  • 使用命令安装 ImageMagick sudo apt-get install imagemagick
  • 导航到包含图像的目录。
  • 运行命令 mogrify -quality 75% *

注意事项

  • 可以在此处找到 mogrify 命令的完整列表。
  • 此命令将替换旧图像。所以建议备份一下,以防万一。


yur*_*hen 5

仅用于.png压缩
//使用软件截图img进行测试

十、测试结果优先

 146K  redis_insight.png    //orig screenshot
 102K  redis_insight-1.png  //optipng compress
  38K  redis_insight-2.png  //pngquant compress

 135K  resp_app_tree.png
  96K  resp_app_tree-1.png
  47K  resp_app_tree-2.png

  88K  redis-commander_tree2.png
  63K  redis-commander_tree2-1.png
  27K  redis-commander_tree2-2.png

  61K  redsmin_tree.png
  44K  redsmin_tree-1.png
  22K  redsmin_tree-2.png
Run Code Online (Sandbox Code Playgroud)

仔细对比结果图像,肉眼几乎无法区分。

1. optipng //无损压缩

$ optipng redis_insight.png -out redis_insight-1.png
Run Code Online (Sandbox Code Playgroud)

//更高的压缩级别

$ optipng -o5 -strip all redis_insight.png -out redis_insight-1.png
Run Code Online (Sandbox Code Playgroud)

2. pngquant //有损压缩

$ pngquant --speed 1 redis_insight.png -o redis_insight-2.png
Run Code Online (Sandbox Code Playgroud)

--


参考: https: //www.systutorials.com/compressing-png-images-on-linux/