2009-06-16 60 views
1

我已經爲他的客戶端上傳了一個客戶端請求,但在上傳之後,要創建一個圖片縮略圖。用PHP生成多種文件格式的縮略圖

所有正常圖像都OK,但他在談到.PSD,.PDF,.EPS,.PPT

擁有一個良好的環顧四周,我認爲王氏ImageMagick的& Ghostscript可滿足大部分的這些,但我不能找到一個PPT或EPS的解決方案。

我希望imagemagick能夠做eps,因爲它可以做psd。

對EPS或PPT文件格式的任何建議。

謝謝,如果你能建議。

回答

1

PPT是一個簡報演示文稿。因此,創建一個PPT圖像需要一些庫來解決這個問題。

這裏有一些資源可以幫助你。

EPS是一個矢量格式,所以除非你有你的矢量對象的圖像,您將無法正確地做到這一點。

0

只是有些想法 - 這些事情都沒有被我自己測試過。

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資源管理器中的文件圖標)可以提取。

0

您可以找到一些免費的圖標集,併爲所有.ppt文件使用默認圖標,併爲所有.eps文件使用默認圖標。然後,您可以進一步對所有無法轉換爲圖像的文件格式(如音頻文件)進行擴展。不是完美的解決方案,但用戶可能會覺得更舒服,然後只是有文字。

2

我遲到,我知道黨,但是......

這是我使用的.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; 
} 

不知道爲什麼它的工作原理,但它確實 - 一個代碼來統治他們的權利?