在 GIMP 中缩小图像而不损失分辨率

平面设计 瘸子 解析度 调整大小 视觉伪影
2022-02-02 20:53:09

如何在 GIMP 中将图像缩小到更小的尺寸而不会造成不必要的分辨率损失?我知道我失去了太多的图像分辨率,因为当我使用 HTML 代码缩小相同的图像并将其显示在网络浏览器中时,我得到了明显更清晰的分辨率。明显更清晰是指 GIMP 中缩小图像中完全不存在的细节以它们在 Web 浏览器中应有的方式显示,并且在不放大图像的情况下很容易看到分辨率的差异。

在此处输入图像描述
原始图像

在此处输入图像描述
缩小图像

我已经尝试过以下两个问题的答案,但没有一个答案能提供与我的 HTML 代码相同的图像分辨率。

我不是在寻找有关 Web 应用程序或服务的建议。我想找到一种方法在我的计算机中本地缩小图像,而不会造成不必要的分辨率损失。

4个回答

缩放位图永远不会没有损失。放大和缩小都会产生插值伪影。这可以用矢量图形做得更好。因此,如果我们可以跟踪位图,我们将获得更好的结果。

在索引图像上进行缩放伪影变得更加明显。我们无法在缩小索引图像时计算插值颜色。

因此,为了仍然能够缩放索引图像,我们应该在缩放之前将图像模式更改为 RGB。然后将更好地保留有关缩减的详细信息:

在此处输入图像描述

如果我们需要索引图像模式,我们可以在缩放后将其更改回来。

这个答案是由 Paolo Gibellini 在两条评论中提出的。也可以使用类似的方法在 GIMP 中缩小图像而不会损失太多分辨率,但是我更喜欢使用 Inkscape,因为使用 Inkscape 更容易做到这一点。

  1. 原始图像可以是 .png、.svg、.jpg 等文件格式,最好是 .png 或 .svg,因为 Inkscape 会将 .jpg 图像保存为 .png 文件。

  2. 在 Inkscape 中打开原始图像文件。当您打开文件时,Inkscape 将打开一个小窗口,要求您选择链接或嵌入图像。单击单选按钮以选择embed

  3. 选择文件->导出位图这将打开一个小的导出位图窗口。

  4. 在导出位图窗口中的导出区域标题下,单击页面按钮。

  5. 在“导出位图”窗口的“位图大小”标题下,为“宽度”和“高度”选择新值以缩小图像。

  6. 单击浏览按钮并浏览到将保存文件的文件夹。

  7. 为导出的文件键入一个名称,扩展名为 .png 以将其保存为 .png 文件,或使用 .svg 扩展名将其另存为 .svg 文件等。

  8. 单击保存按钮。

  9. 单击导出按钮。

仅使用光栅图像处理的答案

从技术上讲,当您缩小比例时,您会失去分辨率,因为您显示的是像素较少的相同图像。因此,问题是要避免比严格必要的更多的分辨率损失。额外的分辨率损失通常是由于空间频率折叠造成的,因此必须在按比例缩小之前去除这些高频。抑制高空间频率只是使图像模糊。所以:

  • Filter>Blur>Gaussian blur
  • 使用等于缩放因子的模糊半径(1024->240,模糊半径=4.3,注意 Gimp 会让您输入半径1024/240并为您进行计算)。
  • 一旦应用了模糊,Image>Scale image

在此处输入图像描述

  • 您可以使用锐化过滤器恢复一点视觉流行(这里:Filters>Enhance>Unsharp mask半径=1和数量=1)

在此处输入图像描述

我记得很久以前读过一篇文章,其中建议的步骤是以 0.5 倍的增量调整大小并应用 Unsharp Mask(0.6 半径,如果我没记错的话,1 个阈值)。

例如,如果初始图像是 3300x3300,而您想将其调整为 200x200:

  1. 调整为 1650x1650(使用最佳插值算法,例如三次)
  2. 应用 Unsharp Mask 0.6/1 一次。
  3. 调整为 825x825
  4. 应用 Unsharp Mask 0.6/1 一次。
  5. 调整为 412x412
  6. 应用 Unsharp Mask 0.6/1 一次。
  7. 调整为 200x200(不想调整大小 206x206 然后 200x200,因为那样会降低质量)

这是一篇文章的示例,它演示了 1-step resize 和 multi-step resize 的区别。它还显示了在每次调整大小之前与之后应用非锐化蒙版的区别。请注意,它对 Unsharp Mask 使用不同的参数,因此您可能需要进行试验。