优化图像以适应最大文件大小

Optimizing image to fit max file size

我需要创建一个简单的应用程序,允许我将图像拖到上面,它会优化下面的图像一定的文件大小。

我目前在 Photoshop 中有一个漫长的过程,我必须一次保存多张图像,重新打开每张图像,然后导出为正确的文件大小。虽然尺寸总是相同的。所以 300x300 将始终低于 40kbs,而 100x600 将始终是 35kbs。

即使我 运行 通过 Photoshop 以完全相同的方式处理图像。我只是希望有一个 faster/automated 过程,但我很难找到一个过程。

有什么想法吗?

提前致谢。

注意:我不想更改图像大小(尺寸),只更改文件大小 (kbs)。

您可以使用 ImageMagick 来做到这一点,它安装在大多数 Linux 发行版上并且适用于 macOS 和 Windows。它仅适用于 JPEG(因为它允许以图像大小换取质量),而 PNG 不适用 - 至少明确地如此。

因此,假设您的图像为 300x300,并且在 161kB 时特别大,因为它是不可压缩的随机噪声:

-rw-r--r--   1 mark  staff  161310 15 Feb 16:56 input.jpg

您可以在终端(或命令提示符,如果在 Windows 下)中使用此命令将其减少到您想要的 40kB:

magick input.jpg -define jpeg:extent=40kb result.jpg

结果是 39kB:

-rw-r--r--   1 mark  staff   39119 15 Feb 16:58 result.jpg

对于本地使用,我会设置 gulp 并按照以下方式使用 npm 包(任何可以完成您需要做的事情的包):

https://www.npmjs.com/package/gulp-image-resize - 调整图片大小

https://www.npmjs.com/package/gulp-imagemin - 压缩图像(我知道您可以使用大小参数来定位所需的文件大小,至少对于 jpeg 是这样)

但是向您展示如何逐步设置所有内容超出了这个答案的范围,所以让我粗略地概述一下您需要做的事情:

  • 安装node.js
  • 安装gulp
  • 安装合适的包管理器
  • 配置 gulp 从特定文件夹抓取图像并手动或自动将它们转换到您想要的 "output" 文件夹。

如果您想走这条路,我建议您从这里开始了解更多关于 gulp 的信息:

https://gulpjs.com/