我对这个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个结果,有色和单色,如下所示
我想让writeImage输出生成的所有图像全部着色。 我应该如何改进我的代码?