Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-06-2009 20:00:00

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

[Résolu]Imagick - NoDecodeDelegateForThisImageFormat

Bonsoir,

Plus ou moins hors-sujet. J'ai installé Zend_Server CE qui inclue php_magick.dll 2.2.2.

Certains ont-ils déjà testé ?

J'ai donc installé imagemagick (la dernière build) et pas moyen de faire fonctionner la classe.

Code:

Message: NoDecodeDelegateForThisImageFormat `G:\PHPServer\Zend\Apache2\htdocs\cosplay-it\public\images\tuto\test.jpg' @ constitute.c/ReadImage/526

J'ai effectué certaines manip. que j'ai trouvé ci et là sur les forums. Du genre déclarer une variable d'environnement MAGICK_HOME qui pointe vers le dossier d'install de imagemagick mais pas moyen.

Dans phpinfo j'ai "ImageMagick Number of supported formats: 0", mais quand j'utilise la commande

Code:

identify -list format

, j'ai bien la liste des formats supportés, dont le format qui m'intéresse.

J'essaie d'effectuer un truc tout con du genre:

Code:

$fileDir = 'G:/PHPServer/Zend/Apache2/htdocs/cosplay-it/public/images/tuto/';
$fileName = 'test.jpg';
        
$im = new Imagick();
$im->readImage($fileDir . $fileName);
$im->setImageFileName($fileDir . 'test-copy.jpg');
$im->writeImage();

L'image existe, le message d'erreur n'est pas le même dans le cas contraire.

Certains ont déjà réussi à configurer correctement le bouzin ?


Merci,

A+ benjamin.

Dernière modification par Delprog (25-06-2009 22:55:37)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#2 25-06-2009 21:44:18

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu]Imagick - NoDecodeDelegateForThisImageFormat

Bonjour,

Ca ne va sans doute pas bcp t'aider, mais j'ai essayé de faire marcher imagick pendant une bonne demi-journée (en compilant les sources sur mac et linux), je n'ai pas réussi à faire marcher l'extension (ni sur mac, ni sur linux)... finalement j'appelle image-magick en ligne de commande...

J'ai l'impression que cette extension est pas mal foireuse et peu utilisée, vu le peu d'info dans google...

A+, Philippe
PS : j'avais essayé il y a 18 mois environ


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 25-06-2009 22:55:21

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu]Imagick - NoDecodeDelegateForThisImageFormat

Bon, j'ai réussi.

C'était la lutte mais bon smile

J'ai regardé pour quelle version d' IM l'extension était faite dans phpinfo:
ImageMagick version: ImageMagick 6.4.6 2008-12-01 Q16 http://www.imagemagick.org

> extension php 2.2.2 intégrée dans la dernière release de Zend_Server.

Du coup j'ai cherché "ImageMagick 6.4.6 2008-12-01" dans google, ce qui m'a donné comme résultat (entre autres) : "ImageMagick-6.4.6-8-Q16". (il y en a plein des 6.4.6 :p)
En continuant les recherches je suis tombé sur http://mhonarc.veidrodis.com/image_magick/binaries/ qui contient toutes les releases.

Ensuite la procédure:

- dl de "ImageMagick-6.4.6-8-Q16-windows-dll.exe"
- installation
- copie de tous les fichiers des dossiers "modules/filters" et "modules/coders" du dossier d'install d'IM à la racine du dossier d'installation (attention sans ça ça ne fonctionne pas)
- ajout de la variable d'environnement "MAGICK_HOME" pointant vers le dossier d'install
- un petit reboot pour être sûr (je pense que c'est pas nécessaire, restart d'apache par contre)

Et hallelujah, dans phpinfo il m'affiche bien tous les formats supportés cette fois-ci, et non "0".

Et mon petit script fonctionne smile

Pfiou hein ? :p

J'ai essayé de trouver plutôt le dernier driver adapté à la dernière release de IM mais pas moyen de faire fonctionner.

A partir de là, c'est quand même beaucoup plus agréable de manipuler IM. Je l'ai toujours utilisé en lignes de commandes et c'est pas la joie. C'est mieux avec un peu de POO !

Exemple:

Code:

// TODO: paramétrage depuis ini
$fileDest = 'G:/PHPServer/Zend/Apache2/htdocs/cosplay-it/public/images/tuto';
$fileName = $adapter->getFileName('fileimg');

// TODO: filtres sur le fichier réceptionné (nom, mime, etc.)

// thumbnail
// TODO: paramétrage depuis ini
$width = 100;
$height = 100;
            
$im = new Imagick();
$im->readImage($fileDest . '/' . $fileName);
            
$im->thumbnailImage($width, $width, true);            

// crée un canvas autour de l'image pour occuper l'espace-restant avec une couleur
// permet d'avoir toujours des vignettes de la même taille.
$canvas = new Imagick();
$canvas->newImage($width, $height, 'black', 'jpg'); // TODO: paramétrage depuis ini du module
            
$geometry = $im->getImageGeometry();
                    
$x = ( $width - $geometry['width'] ) / 2;
$y = ( $height - $geometry['height'] ) / 2;
            
$canvas->compositeImage( $im, imagick::COMPOSITE_OVER, $x, $y );
            
$tbName = $fileName . '-tb.jpg';
            
$canvas->setImageFileName( $fileDest . '/' . $tbName);
$canvas->writeImage();
            
echo $tbName;

Génération d'un thumbnail après réception d'une image. Manque plus qu'à gérer un petit cache et bingo smile
C'est quand même plus facile et plus propre que de pauvres lignes de commandes.

La lib est pas mal buggée, mais ils s'améliorent quand même. Au tout début c'était louche parfois les résultats smile
Mais c'est quand même surpuissant, et très très utile, je n'en connais pas de mieux.

A+ benjamin.

Dernière modification par Delprog (25-06-2009 23:03:54)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#4 26-06-2009 09:04:30

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu]Imagick - NoDecodeDelegateForThisImageFormat

Félicitations !

Sinon pour générer des thumbnails, il y a phpThumb. Le principe est assez particulier, mais c'est assez malin.
http://phpthumb.sourceforge.net/

En gros l'url d'appel de ton image fixe la taille et différents paramètres (watermarking, transparence, redimentionnement,...).

Regarde l'onglet démo, c'est un peu le seul truc compréhensible de leur site smile

En termes de perfs, phpThumb est forcément moins bien que des images complètement statiques, mais c'est pas mal. Il y a un système de cache bien fichu.

Pour leur manipulation d'image, ils s'appuient sur gd2 ou image magick (en ligne de commande) suivant la configuration choisie.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#5 26-06-2009 10:44:59

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu]Imagick - NoDecodeDelegateForThisImageFormat

En gros, après autant de lutte et d'acharnement, tu me proposes d'abandonner IM en objet ? smile

Merci pour le lien, je regarde ça :p


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages