Home > front end >  ImageMagick converts PDF into tiny images despite setting density and resize options
ImageMagick converts PDF into tiny images despite setting density and resize options

Time:03-22

I'm using ImageMagick to convert the following PDF to an PNG file: PDF file with music scores that looks OK

but when converting with

convert "file.pdf" "/tmp/file.png"

the produced image gets an extremely low resolution:

tiny image

when adding density and resize information, I get somewhat bigger images, but still not the original resolution that is stored within the PDF (certainly not 300 DPI)

convert -density "300" -resize "3000x3000>" "file.pdf" "/tmp/file.png"

still too small image

When using Poppler-Utils' pdfimages, I'm getting the appropriate image:

Properly scaled image of music scores

My question is: Is there any way to tell ImageMagick to extract the images in the "correct" resolution (as is stored in the PDF document)? In other words, ignore the zoom that is necessary to view the PDF properly, thus extracting the correct image resolution?

I'm using ImageMagick 7.1.0.16 with Ghostscript 9.55.0 inside an Alpine Linux docker image.

CodePudding user response:

You need to increase your density much larger and put your resize after reading the input in Imagemagick.

This will be 5800 × 7200 pixels:

convert -density 4800 IMSLP358086-PMLP578359-Ehr_OP_20_5.pdf[1] x.png

enter image description here

This will be 2417 × 3000 pixels:

convert -density 4800 IMSLP358086-PMLP578359-Ehr_OP_20_5.pdf[1] -resize "3000x3000>" y.png

enter image description here

CodePudding user response:

Very unusual structure you have there its been through many changes but we can guess some pages may have been converted to 300 dpi or 600 dpi since they all render at roughly the same size.

Note that graphics dpi is subjective it is not that value that's used inside a PDF it is the the pixels per default of 72 point units that relate to a graphics working dpi. the image may have been 75 dpi but stored at 300 pixels per 72 points.

1st Analysis says images are

  • image-0028 = 714 X 900 dots nominally 600 dpi
  • image-0002 = 726 X 900 dots nominally 600 dpi
  • image-0005 = 674 x 900 dots nominally 600 dpi
  • image-0008 = 674 x 900 dots nominally 600 dpi
  • image-0011 = 674 x 900 dots nominally 600 dpi
  • image-0014 = 674 x 900 dots nominally 600 dpi

but all have been down-sampled to various sizes approx. 1.2" x 1.5" so a sensible source size to match all those reductions is possibly 9.6" x 12" with some cropping.

Thus to get the nearest original quality extract pages @ 600 dpi (lossless png would be best to keep those lossy jpeg flaws)

Then reconvert them to 75 dpi should give you the closest to the poor quality inputs.

  • Related