用PHP生成多种文件格式的缩略图
我已经为他的客户端上传了一个客户端请求,但在上传之后,要创建一个图片缩略图。用PHP生成多种文件格式的缩略图
所有正常图像都OK,但他在谈到.PSD,.PDF,.EPS,.PPT
拥有一个良好的环顾四周,我认为王氏ImageMagick的& Ghostscript可满足大部分的这些,但我不能找到一个PPT或EPS的解决方案。
我希望imagemagick能够做eps,因为它可以做psd。
对EPS或PPT文件格式的任何建议。
谢谢,如果你能建议。
PPT是一个简报演示文稿。因此,创建一个PPT图像需要一些库来解决这个问题。
这里有一些资源可以帮助你。
EPS是一个矢量格式,所以除非你有你的矢量对象的图像,您将无法正确地做到这一点。
只是有些想法 - 这些事情都没有被我自己测试过。
EPS:
你应该能够将您的EPS转换成PDF与ghostscript。使用imagemagick & ghostscript,您可以将PDF转换为某种位图格式(GIF,PNG或JPG)。
PPT:
这似乎在某种程度上更加复杂。如果您使用的是Windows机器,则可以使用小型手写转换器内的Powerpoint API。另一种可能是使用Apache POI-HSLF这是Powerpoint文件格式的Java API。这需要一个用于转换过程的Java程序。最后的手段可能是研究Powerpoint binary file format并查看是否存在例如嵌入的缩略图(可能是用于Windows资源管理器中的文件图标)可以提取。
您可以找到一些免费的图标集,并为所有.ppt文件使用默认图标,并为所有.eps文件使用默认图标。然后,您可以进一步对所有无法转换为图像的文件格式(如音频文件)进行扩展。不是完美的解决方案,但用户可能会觉得更舒服,然后只是有文字。
我迟到,我知道党,但是......
这是我使用的.PDF,.EPS和.AI缩略。 (假设安装了所有必要的ImageMagick发行版)
$file = 'filename.pdf.eps.ai';
$cache = $_SERVER['DOCUMENT_ROOT'].'/cache/';//ensure dir is writeable
$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;
}
不知道为什么它的工作原理,但它确实 - 一个代码来统治他们的权利?