我想制作用户上传的pdf或ppt缩略图 我试过了
$file = 'Digital Signage.pptx';
$cache = $_SERVER['DOCUMENT_ROOT'].'/cache/';
$ext = "jpg";//just the extension
$dest = $cache.$file.'.'.$ext;
if (file_exists($dest)){
$img = new imagick();
$img->readImage($dest);
header( "Content-Type: image/jpg" );
echo $img;
exit;
} else {
$img = new imagick($_SERVER['DOCUMENT_ROOT'].'/'.$file.'[0]');
$img->setImageFormat($ext);
$width = $img->getImageheight();
//$img->cropImage($width, $width, 0, 0);
$img->scaleImage(105, 149, true);
$img->writeImage($dest);
header( "Content-Type: image/jpg" );
echo $img;
exit;
}
这需要想象力安装在服务器上,我的主机不允许我,因为我在共享主机上有任何其他方法来执行此操作
我也可以使用exec命令,因为它不安全,我不会使用这个
答案 0 :(得分:0)
使用imagemagick还有其他选择。也许使用PHPGD来创建缩略图。该功能称为imagecopyresized
调整大小如何工作的示例代码:
<?php
// The file you are resizing
$file = 'your.jpg';
//This will set our output to 45% of the original size
$size = 0.45;
// This sets it to a .jpg, but you can change this to png or gif
header('Content-type: image/jpeg');
// Setting the resize parameters
list($width, $height) = getimagesize($file);
$modwidth = $width * $size;
$modheight = $height * $size;
// Creating the Canvas
$tn= imagecreatetruecolor($modwidth, $modheight);
$source = imagecreatefromjpeg($file);
// Resizing our image to fit the canvas
imagecopyresized($tn, $source, 0, 0, 0, 0, $modwidth, $modheight, $width, $height);
// Outputs a jpg image, you could change this to gif or png if needed
imagejpeg($tn);
?>
更新:此外,为了从PDF创建图像,然后尝试使用imagecreatefromstring函数,然后根据图像结果进行调整。
答案 1 :(得分:0)
我知道我来不及回答这个问题但是,这可能对其他人有帮助。
除了使用imagick或ghost脚本(命令行工具)之外,没有办法执行上述任务,所以最后我找到了一种方法,在另一个专用服务器上启用imagick扩展,然后在那里生成图像然后下载它们位于托管我的网站的服务器上file_get_content()
答案 2 :(得分:0)
这个问题迟到了,但您可以考虑使用其中一种在线转化服务。他们有API,您可以上传PPTX并下载每张幻灯片的png。大部分都不是免费的,但它可能比滚动自己更容易进行转换。
在我对这个问题的研究中,我遇到了http://www.zamzar.com/和https://cloudconvert.com/。我还没有使用过,所以我无法报告转换的质量。