2009-06-16 6 views
1

J'ai reçu une demande de client sur un service de téléchargement pour ses clients, mais après le téléchargement, une vignette d'image a été créée.Générer des miniatures avec PHP pour un large éventail de formats de fichiers

Toutes les images normales sont ok mais il parle de son .psd, .pdf, .eps, .ppt

Avoir un bon coup d'oeil autour Je pense que wih ImageMagick & Ghostscript répondra à la plupart d'entre eux, mais je ne peux pas trouver une solution de PPT ou EPS. Je espère que imagemagick sera capable de faire des eps car il peut faire un psd.

Toute suggestion sur le format de fichier EPS ou PPT.

Merci de votre confiance.

Répondre

1

PPT est une présentation PowerPoint. Donc, la création d'une image qui est un PPT nécessiterait une bibliothèque qui peut retirer cela.

Voici quelques ressources pour vous aider.

EPS est un format vectoriel, donc pas moins que vous ayez votre image comme des objets vectoriels, vous ne serez pas en mesure de le faire correctement.

0

Juste quelques pensées - aucune de ces choses n'a été testée par moi-même.

EPS:

Vous devriez être en mesure de convertir vos EPS en PDF avec ghostscript. En utilisant imagemagick & ghostscript vous pouvez convertir le PDF en format bitmap (GIF, PNG ou JPG).

PPT:

Cela semble être en quelque sorte plus compliqué. Si vous êtes sur une machine Windows, vous pouvez utiliser l'API Powerpoint depuis un petit convertisseur écrit à la main. Une autre possibilité serait peut-être d'utiliser Apache POI-HSLF qui est une API Java au format de fichier Powerpoint. Cela nécessiterait un programme Java pour le processus de conversion. Le dernier recours pourrait être d'étudier le Powerpoint binary file format et de voir s'il y a par ex. une vignette incorporée (peut-être utilisée pour l'icône du fichier dans l'explorateur Windows) qui pourrait être extraite.

0

Vous pouvez trouver des jeux d'icônes gratuits et utiliser une icône par défaut pour tous les fichiers .ppt et une autre pour tous les fichiers .eps. Vous pouvez ensuite étendre cela pour tous les formats de fichiers qui ne peuvent pas être convertis en une image, tels que les fichiers audio. Pas la solution parfaite, mais quelque chose qu'un utilisateur peut se sentir plus à l'aise avec alors avoir juste du texte.

2

Je suis en retard à la fête, je sais, mais ...

C'est ce que je l'utilise pour .PDF, .eps et .AI thumbnailing. (En supposant que toutes les distros ImageMagick nécessaires installés)

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

Je ne sais pas pourquoi cela fonctionne, mais il fait - un code pour les gouverner tous les droits?

Questions connexes