尽管设置了密度和调整大小选项,ImageMagick 仍将 PDF 转换为小图像
ImageMagick converts PDF into tiny images despite setting density and resize options
我正在使用 ImageMagick 将以下 PDF 转换为 PNG 文件:PDF from IMSLP (Permalink)
在 PDF 查看器中它看起来不错(尽管它需要相当大的缩放):
但是当使用
转换时
convert "file.pdf" "/tmp/file.png"
生成的图像分辨率极低:
当添加密度和调整大小信息时,我得到了更大的图像,但仍然不是 PDF 中存储的原始分辨率(当然不是 300 DPI)
convert -density "300" -resize "3000x3000>" "file.pdf" "/tmp/file.png"
当使用 Poppler-Utils' pdfimages
时,我得到了合适的图像:
我的问题是:有什么方法可以告诉 ImageMagick 以“正确”的分辨率(如存储在 PDF 文档中的那样)提取图像?换句话说,忽略正确查看 PDF 所需的缩放,从而提取正确的图像分辨率?
我在 Alpine Linux docker 图像中使用 ImageMagick 7.1.0.16 和 Ghostscript 9.55.0。
您需要增加密度并在读取 Imagemagick 中的输入后调整大小。
这将是 5800 × 7200 像素:
convert -density 4800 IMSLP358086-PMLP578359-Ehr_OP_20_5.pdf[1] x.png
这将是 2417 × 3000 像素:
convert -density 4800 IMSLP358086-PMLP578359-Ehr_OP_20_5.pdf[1] -resize "3000x3000>" y.png
非常不寻常的结构,它经历了许多变化,但我们可以猜测某些页面可能已转换为 300 dpi 或 600 dpi,因为它们都以大致相同的尺寸呈现。
请注意,图形 dpi 是主观的,它不是 PDF 中使用的值,它是与图形工作 dpi 相关的默认 72 点单位的像素。图像可能是 75 dpi,但存储为每 72 点 300 像素。
第 1 次分析表明图像是
- image-0028 = 714 X 900 点标称 600 dpi
- image-0002 = 726 X 900 点标称 600 dpi
- image-0005 = 674 x 900 点标称 600 dpi
- image-0008 = 674 x 900 点标称 600 dpi
- image-0011 = 674 x 900 点标称 600 dpi
- image-0014 = 674 x 900 点标称 600 dpi
但所有尺寸都已 down-sampled 约。 1.2" x 1.5" 所以一个合理的源尺寸来匹配所有这些减少是可能的
9.6" x 12" 有一些裁剪。
从而获得最接近原始质量的提取页面@600 dpi(无损 png 最好保留那些有损 jpeg 缺陷)
然后将它们重新转换为 75 dpi 应该会让您最接近劣质输入。
我正在使用 ImageMagick 将以下 PDF 转换为 PNG 文件:PDF from IMSLP (Permalink)
在 PDF 查看器中它看起来不错(尽管它需要相当大的缩放):
但是当使用
转换时convert "file.pdf" "/tmp/file.png"
生成的图像分辨率极低:
当添加密度和调整大小信息时,我得到了更大的图像,但仍然不是 PDF 中存储的原始分辨率(当然不是 300 DPI)
convert -density "300" -resize "3000x3000>" "file.pdf" "/tmp/file.png"
当使用 Poppler-Utils' pdfimages
时,我得到了合适的图像:
我的问题是:有什么方法可以告诉 ImageMagick 以“正确”的分辨率(如存储在 PDF 文档中的那样)提取图像?换句话说,忽略正确查看 PDF 所需的缩放,从而提取正确的图像分辨率?
我在 Alpine Linux docker 图像中使用 ImageMagick 7.1.0.16 和 Ghostscript 9.55.0。
您需要增加密度并在读取 Imagemagick 中的输入后调整大小。
这将是 5800 × 7200 像素:
convert -density 4800 IMSLP358086-PMLP578359-Ehr_OP_20_5.pdf[1] x.png
这将是 2417 × 3000 像素:
convert -density 4800 IMSLP358086-PMLP578359-Ehr_OP_20_5.pdf[1] -resize "3000x3000>" y.png
非常不寻常的结构,它经历了许多变化,但我们可以猜测某些页面可能已转换为 300 dpi 或 600 dpi,因为它们都以大致相同的尺寸呈现。
请注意,图形 dpi 是主观的,它不是 PDF 中使用的值,它是与图形工作 dpi 相关的默认 72 点单位的像素。图像可能是 75 dpi,但存储为每 72 点 300 像素。
第 1 次分析表明图像是
- image-0028 = 714 X 900 点标称 600 dpi
- image-0002 = 726 X 900 点标称 600 dpi
- image-0005 = 674 x 900 点标称 600 dpi
- image-0008 = 674 x 900 点标称 600 dpi
- image-0011 = 674 x 900 点标称 600 dpi
- image-0014 = 674 x 900 点标称 600 dpi
但所有尺寸都已 down-sampled 约。 1.2" x 1.5" 所以一个合理的源尺寸来匹配所有这些减少是可能的 9.6" x 12" 有一些裁剪。
从而获得最接近原始质量的提取页面@600 dpi(无损 png 最好保留那些有损 jpeg 缺陷)
然后将它们重新转换为 75 dpi 应该会让您最接近劣质输入。