PHP Artichow Missing imageantialias

// avril 15th, 2010 // Informatique

  • Share
  • Share

Artichow Erreur Antialias

Vectoris a pu experimenter Artichow, qui je le rapelles est une librairie de génération de graphes avec php_gd. Il s’est avéré qu’il y avait plusieurs autres solutions, en Flash, en JQuery … voir Artichow pour des graphes statistiques en PHP.

Ce qui est sympa avec Artichow, c’est que les erreurs sont bien et “joliment” présentés. Voici, plus haut, une de celles que vous pourrez rencontrer en l’utilisant. “Missing imageantialias() function. Check your PHP installation”. Rencontré sur PHP 5.2 avec Artichow 1.0.9.

Le réflexe : faire un phpinfo() pour vérifier si php_gd est bien là. Mais voilà, il y est, le problème est ailleurs. Il se trouve que cette fonction n’est disponible que si PHP est installé avec la version embarquée de la bibliothèque GD. Si vous utilisez une version pré-compilée, dans mon cas, php5-gd, ça ne marchera pas.

A rappeler que l’anti-alias ou anticrénelage, en français, est un procédé qui enlève les pixelisations sur les textes. Plus d’info sur Wikipedia, Anticrénelage.

“Ahh, tête posée, effectivement, c’est évident”. On va désactiver ça, il y a justement une méthode … :

$graph->setAntiAliasing(false);

“Ah, zut, c’est toujours pas OK …”

Votre raisonnement est juste. En fait, c’est celle de la méthode qui est fausse. Allons la voir, dans le fichier inc/drivers/gd.class.php :

if(function_exists('imageantialias')) {
imageantialias($this->resource, (bool)$bool);
$this->antiAliasing = (bool)$bool;
} else {
awImage::drawErrorFile('missing-anti-aliasing');
}

Même si on désactive l’anti-alias, tant que la fonction n’existe pas, on a toujours l’erreur. Mais si on est en train de la désactiver, c’est justement qu’on a pas besoin, non ? Pour résoudre, faites un elseif, a la place du else, en testant la valeur de paramètre reçu par la méthode :

} elseif($bool==true) {

Ce code est plus juste, non ? D’ailleurs, vous venez de résoudre votre problème. J’espère que les développeurs Artichow corrigeront ça pour les prochaines versions …

Sinon, si vous y tenez à ce Anti-alias, il faudra recompiler PHP avec GD que vous trouverez surement à coup de Google. Ou bien … je ne sais pas si il y a moyen de remplacer le fichier gd.so sauvagement dans /usr/lib/php5/ …

6 Responses to “PHP Artichow Missing imageantialias”

  1. Didier100 dit :

    Quand ce problème survient avec Debian. il suffit de commenter quelques lignes dans le fichier ./Artichow-php5/inc/drivers/gd.class.php (ligne 156)

    public function setAntiAliasing($bool) {
    //if(function_exists(’imageantialias’)) {
    //imageantialias($this->resource, (bool)$bool);
    $this->antiAliasing = (bool)$bool;
    //} else {
    // awImage::drawErrorFile(’missing-anti-aliasing’);
    //}
    }

    Voila, c’est simple et efficace!

  2. trambo dit :

    Oui mais du coup, le paramètre booléen ne sert plus a rien … :)

  3. flomoto dit :

    Merci les mecs vous m’avez permis de faire disparaître ce $%*# de message d’erreur

  4. nahary dit :

    Merci à toi Didier100, tu m’a aidé aussi à résoudre ce problème d’imageantialias

  5. Niko dit :

    Merci, heureusement que tu était là, tu m’a fait gagner 2 bonnes heures. continue a faire ce genre d’article.

  6. Anthony dit :

    Merci bien! Peux bien me faire un café avec le temps que tu me fais économiser!

Leave a Reply

Security Code: