102 votes

Vérifier l'installation d'ImageMagick

Mon hébergeur m'a dit que ImageMagic a été préinstallé sur le serveur. J'ai fait une recherche rapide de "ImageMagick" dans la sortie de phpinfo() et je n'ai rien trouvé. Je ne peux pas me connecter au serveur par SSH. Y a-t-il un moyen de vérifier l'installation en PHP ?

166voto

stillstanding Points 10346
if (!extension_loaded('imagick'))
    echo 'imagick not installed';

14 votes

De même, à partir de la ligne de commande : php -r 'echo "imagick is ".(extension_loaded("imagick")?"":"not ")."installed\n";'

49voto

wajiw Points 6476

Essayez ça :

<?
function alist ($array) {  //This function prints a text array as an html list.
  $alist = "<ul>";
  for ($i = 0; $i < sizeof($array); $i++) {
    $alist .= "<li>$array[$i]";
  }
  $alist .= "</ul>";
  return $alist;
}
exec("convert -version", $out, $rcode); //Try to get ImageMagick "convert" program version number.
echo "Version return code is $rcode <br>"; //Print the return code: 0 if OK, nonzero if error.
echo alist($out); //Print the output of "convert -version"
?>

25 votes

Ceci teste si l'application ImageMagick est installée, pas le module PHP

0 votes

Le code de retour de la version est 0 * Version : ImageMagick 6.3.7 08/09/09 Q16 imagemagick.org * Copyright : Copyright (C) 1999-2008 ImageMagick Studio LLC

0 votes

Voici ce que la page renvoie. Il semble qu'elle ait des difficultés à renvoyer la version mais qu'elle renvoie les informations de copyright.

44voto

Nate Flink Points 1280

EDIT : L'info et le script ci-dessous ne s'appliquent qu'à la classe iMagick - qui n'est pas ajoutée par défaut avec ImageMagick ! !!

Si je veux savoir si imagemagick est installé et fonctionne réellement en tant qu'extension php, je colle cet extrait dans un fichier accessible sur le web.

<?php

error_reporting(E_ALL); 
ini_set( 'display_errors','1');

/* Create a new imagick object */
$im = new Imagick();

/* Create new image. This will be used as fill pattern */
$im->newPseudoImage(50, 50, "gradient:red-black");

/* Create imagickdraw object */
$draw = new ImagickDraw();

/* Start a new pattern called "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);

/* Composite the gradient on the pattern */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);

/* Close the pattern */
$draw->popPattern();

/* Use the pattern called "gradient" as the fill */
$draw->setFillPatternURL('#gradient');

/* Set font size to 52 */
$draw->setFontSize(52);

/* Annotate some text */
$draw->annotation(20, 50, "Hello World!");

/* Create a new canvas object and a white image */
$canvas = new Imagick();
$canvas->newImage(350, 70, "white");

/* Draw the ImagickDraw on to the canvas */
$canvas->drawImage($draw);

/* 1px black border around the image */
$canvas->borderImage('black', 1, 1);

/* Set the format to PNG */
$canvas->setImageFormat('png');

/* Output the image */
header("Content-Type: image/png");
echo $canvas;
?>

Vous devriez voir un graphique "hello world" :

enter image description here

19voto

Spencer Hakim Points 1220

Vous pouvez facilement vérifier la classe Imagick en PHP.

if( class_exists("Imagick") )
{
    //Imagick is installed
}

9 votes

important : Parfois, cela renvoie FALSE mais extension_loaded('imagick') renvoie VRAI !, donc je suppose que le mieux est : if( extension_loaded('imagick') || class_exists("Imagick") ){ /*do Imagick*/ }

7voto

convert a pdf Points 41

Essayez cette solution unique qui devrait déterminer où se trouve ImageMagick, si vous y avez accès...

Cela a trouvé toutes les versions sur mon hébergement Godaddy.

Téléchargez ce fichier sur votre serveur et appelez-le comme suit ImageMagick.php ou quelque chose d'autre puis l'exécuter. Vous obtiendrez toutes les informations dont vous avez besoin... avec un peu de chance...

Bonne chance.

<?
/*
// This file will run a test on your server to determine the location and versions of ImageMagick. 
//It will look in the most commonly found locations. The last two are where most popular hosts (including "Godaddy") install ImageMagick.
//
// Upload this script to your server and run it for a breakdown of where ImageMagick is.
//
*/
echo '<h2>Test for versions and locations of ImageMagick</h2>';
echo '<b>Path: </b> convert<br>';

function alist ($array) {  //This function prints a text array as an html list.
    $alist = "<ul>";
    for ($i = 0; $i < sizeof($array); $i++) {
        $alist .= "<li>$array[$i]";
    }
    $alist .= "</ul>";
    return $alist;
}

exec("convert -version", $out, $rcode); //Try to get ImageMagick "convert" program version number.
echo "Version return code is $rcode <br>"; //Print the return code: 0 if OK, nonzero if error.
echo alist($out); //Print the output of "convert -version"
echo '<br>';
echo '<b>This should test for ImageMagick version 5.x</b><br>';
echo '<b>Path: </b> /usr/bin/convert<br>';

exec("/usr/bin/convert -version", $out, $rcode); //Try to get ImageMagick "convert" program version number.
echo "Version return code is $rcode <br>"; //Print the return code: 0 if OK, nonzero if error.
echo alist($out); //Print the output of "convert -version"

echo '<br>';
echo '<b>This should test for ImageMagick version 6.x</b><br>';
echo '<b>Path: </b> /usr/local/bin/convert<br>';

exec("/usr/local/bin/convert -version", $out, $rcode); //Try to get ImageMagick "convert" program version number.
echo "Version return code is $rcode <br>"; //Print the return code: 0 if OK, nonzero if error.
echo alist($out); //Print the output of "convert -version";

?>

1 votes

Convertir un pdf : Many thx. nice script. a bien fonctionné à la fois sur hostgator et godaddy... pas aussi cool que cloud ou AWS, mais dans le budget de mes clients de petite entreprise.

1 votes

Après des heures... ici Google mange ça : MediaWiki Erreur de création de vignette : sh : /usr/local/bin/convert : Aucun fichier ou répertoire de ce type

0 votes

Mon application est une application .NET et Sitecore. Comment puis-je vérifier si mon application utilise ImageMagick ou non ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X