无需重新编码即可更改 JPEG 中的 DPI?使用 ImageMagick 或其他东西

Roc*_*uts 3 metadata dpi jpeg imagemagick exiftool

有时我有我想要包含某个 DPI 设置的图像文件。请注意,我的意思只是 DPI 值,即图像元数据中的值。我不想调整实际图像的大小。因此,例如,更高的 DPI 将导致以厘米为单位的更小尺寸,以及相同数量的像素。

我知道我可以使用convert带有-density参数的ImageMagick 设置或更改图像的 DPI ,但这会重新编码图像。我想避免这种情况。

有没有办法,使用 ImageMagick 或其他东西(例如 ExifTool 或其他东西)来显式设置 JPEG 的 DPI 值而不更改实际的压缩图像内容本身?

请注意,我正在使用 OS X 并寻找一个命令行工具来执行此操作(我想在 shell 脚本中使用它)。

Sta*_*eek 10

您可以使用exiftool执行此操作

您的命令是:
exiftool -XResolution=# -YResolution=# FileOrDir
将哈希标记更改为新的 DPI 编号。此命令将对每个文件进行备份,您可以通过添加-overwrite_original. 有关IS-ResolutionUnit其可设置为Noneinches,或cm

  • 另一个选项是:-jfif:Xresolution=300 -jfif:Yresolution=300(ExifTool 的作者在这里建议):http://u88.n24.queensu.ca/exiftool/forum/index.php?topic=2164.0) (2认同)
  • 对于 600dpi PNG 文件:`exiftool -overwrite_original_in_place -PixelsPerUnitX=23607 -PixelsPerUnitY=23607 *.png` (2认同)
  • @MattSephton不是600*1000/25.4 = 23622吗?为什么是23607? (2认同)
  • 你是对的,应该是23622。我刚刚确认使用Photoshop保存了600dpi的PNG。我不记得这个答案,不管我是如何想出另一个值的。 (2认同)