1

複数ページのPDFをブラウザに表示される一連のPNGに変換する必要があります。

このコードは機能します:

$images = new imagick();
$images->readimage($_FILES['upload']['tmp_name']);
$images->setformat('png');

    foreach ($images as $pageNumber => $image) {
       //Save individual images 
     }

ただし、品質が非常に低く、ほとんど読み取れないPNGが生成されます。

このコード:

$images = new imagick();
$images->setresolution(1024,0);
$images->readimage($_FILES['upload']['tmp_name']);
$images->setformat('png');

    foreach ($images as $pageNumber => $image) {
       //Save individual images 
     }

readimage()で次のエラーを生成します。

Postscript delegate failed `/tmp/magick-bpkD9zy7': @ error/pdf.c/ReadPDFImage/663

PNGを読み取るのに十分な品質を得るには、imagickのデフォルトよりも高い解像度でPDFをラスタライズできる必要があります。どんな助けでも大歓迎です。

編集-以下が解決策です-正しく行われたサイトに感謝します

$images = new imagick();
$images->setimageunits(RESOLUTION_PIXELSPERINCH);
$images->setresolution(150,150);
$images->readimage($_FILES['upload']['tmp_name']);
$images->setformat('png');

    foreach ($images as $pageNumber => $image) {
       //Save individual images 
     }
4

1 に答える 1

0

使用する

$images->setresolution

画像の密度を設定します。1024,0(convert -density 1024x0を使用するようなもの)を試す代わりに、密度を200x200のように設定してみてください。

次に、http://php.net/manual/en/imagick.setimageunits.phpを使用します

$images->setImageUnits 

その解像度の単位を(「PixelsPerInch」のようなものに)設定します。これにより、画像の鮮明度が適切に設定されます。

于 2013-02-13T21:24:49.487 に答える