用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; 
} 

不知道为什么它的工作原理,但它确实 - 一个代码来统治他们的权利?