IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[ImageMagick] Apposer un logo à une image en PHP - Problème de couleurs


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 39
    Points : 15
    Points
    15
    Par défaut [ImageMagick] Apposer un logo à une image en PHP - Problème de couleurs
    Bonjour à tous,

    A la recherche d'un script permettant d'apposer un logo à une image avec PHP, je suis tombé sur un tuto qi donnait un exemple de code, à savoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    header ("Content-type: image/jpeg"); // L'image que l'on va créer est un jpeg
     
    // On charge d'abord les images
    $source = imagecreatefrompng("logo.png"); // Le logo est la source
    $destination = imagecreatefromjpeg("image.jpg"); // La photo est la destination
     
    // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
    $largeur_source = imagesx($source);
    $hauteur_source = imagesy($source);
    $largeur_destination = imagesx($destination);
    $hauteur_destination = imagesy($destination);
     
    $destination_x = 0;
    $destination_y = 0;
     
    // On met le logo (source) dans l'image de destination (la photo)
    imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 100);
     
    // On affiche l'image de destination qui a été fusionnée avec le logo
    imagejpeg($destination);
    ?>
    Le tout fonctionne bien, mais me pose un problème.
    Mon logo.png est un texte, un petit logo, et le reste est transparent.

    Visiblement le transparent ne passe pas, et est remplacé par la couleur de fond, à un endroit le texte est vert, une partie du logo apparait toute verte, etc.

    Donc ma question serait : comment apposer un logo PNG en respectant sa transparence sur une image ? Je ne peux pas utiliser un GIF transparent car les contours des lettres ne sont dans ce cas pas nettes et entourées de blanc.

    Merci.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Visiblement ça vient du fait que le PNG 24 passe mal, mais le même logo en PNG 8 a un rendu à peu près identique au GIF, c'est à dire avec une "bordure" blanche autour des lettres et logos.

    Sans contour, le logo est "dentelé".

    Comment faire pour obtenir un contour propre comme en PNG 24 dans ce cas ?

Discussions similaires

  1. [ImageMagick] Redimensionner et compléter une image
    Par mussara dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/11/2006, 23h23
  2. [MySQL] Insérer une image en PHP
    Par ®om dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 07/08/2006, 15h53
  3. Réponses: 6
    Dernier message: 14/06/2006, 22h31
  4. Afficher une image avec PHP
    Par a_zouggari dans le forum Langage
    Réponses: 2
    Dernier message: 22/04/2006, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo