ImageMagick - writeImage输出产生8位深度图像而不是24位深度图像

时间:2017-03-05 19:21:08

标签: php html pdf imagemagick ghostscript

我对这个ImageMagick&因此GhostScript,我很困惑我做错了什么。 我正在尝试将PDF的封面转换为JPG,但是一些writeImage输出,产生彩色一次--24位,而大多数产生单色--8位(我不想要)。

我的代码是:

<html>
<head>
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        <input type="file" id="pdf" name="file" accept=".pdf"/>
        <input type="file" id="imagePDF" style="display:none">
        <input type="submit" value="upload"/>
    </form>
</body>

<?php
if(isset($_FILES['file'])){

    //Save file to directory
    $file = $_FILES['file'];
    $file_destination = "files/";
    //File properties
    $file_name = $file['name'];
    $file_tmp = $file['tmp_name'];
    $file_size = $file['size'];
    $file_error = $file['error'];

    //Work out the file extension
    $file_ext = explode('.', $file_name);
    $file_ext = strtolower(end($file_ext));

    $allowed = array('pdf');

    if(in_array($file_ext, $allowed)){
        if($file_error === 0){
            if($file_size <= 63000000){
                //File destination relative to upload.php
                $pdfWithPath = $file_destination . $file_name;
                if(move_uploaded_file($file_tmp, $pdfWithPath)){
                    echo("File uploaded: <br>");
                    echo $pdfWithPath;
                }

            }
        }
    }

    //Create thumbnail and save to directory
    $thumb_name = $file_name . ".jpg";
    $thumb_destination = "pdfThumb/";
    $thumb_path = $thumb_destination . $thumb_name;
    $thumb_first_page = $pdfWithPath . "[0]";

    $image = new Imagick();
    $image->readImage(__DIR__ . DIRECTORY_SEPARATOR . $thumb_first_page);
    $image->writeImage(__DIR__ . DIRECTORY_SEPARATOR .'pdfThumb/'.$thumb_name);
    $image->destroy();
    echo("Done");
}
?>

<html>
    <head>
        <!--Display image on screen -->
        <img src="<?php echo $thumb_path; ?>"/>
    </head>
    <body>
    </body>
</html>

此代码的想法是上传pdf并将其存储到文件夹'files'中 然后,要创建PDF文件的缩略图,它将从文件夹'files'中检索PDF并生成图像,将图像保存到文件夹'pdfThumb'

我有这个writeImage的2个结果,有色和单色,如下所示

Mono-coloured image produced

Coloured image produce

我想让writeImage输出生成的所有图像全部着色。 我应该如何改进我的代码?

0 个答案:

没有答案