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 :

[GD] Problème avec imagecopymerge


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 13
    Par défaut [GD] Problème avec imagecopymerge
    Bonjour,

    J'utilise actuellement la bibliothèque GD afin de créer des watermark sur mes images. Cependant, je rencontre un problème lors de la création de mon image watermarquée puisque lors de l'exécution du code, au lieu de me retourner une image, cela m'affiche une page pleine de caractères spéciaux !

    exemple :

    5ÿÿÿ–:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿY¤ÿÿÿÿÿÿÕ¹\¦rÇô|¢˜FÿÿÿÿÿÿÿÿÿüùïØœ\ÿÿÿ¯Ë’°ÉYy¥PÿÿÿÿÿÿÂW®ÛZ¯Ûv°Êuw¥9xˆ8ÿÿÿÂ=*ÛAÿÿÿÿÿÿ,XÂþH° Áƒ*\Ȱ¡Ã‡#JDøG`EfœÈ±£Ç CŠI²¤É“(Sª\ɲ¥Ë…cZœ)ó¥Í›8sêÜɳ§ÏŸ@ƒbœ‰ñâF¡H“*]Ê´©Ó§P#f4:”êѨX³jÝʵ«W¥V-Ö$úµ¬Ù³hÓªíJU#ͪkãÊK·®]2cÖ{·¯ß¿€CýÓ6ïØ«‚+^̸±G£yߺuL¹²å˧ ³çÏ

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $dest = imagecreatefromjpeg($img);
    $src = imagecreatefromjpeg($dtm);
     
    imagecopymerge($dest, $src, 10, 10, 0, 0, 60, 60, 75);  
     
    header('Content-Type: image/jpeg');  
    imagegif($dest);  
     
    imagedestroy($dest);  
    imagedestroy($src);
    Les images récupérées ($img et $dtm) sont bonnes (je peux les afficher) et sont bien au format jpeg. quelqu'un a t-il une idée du problème ?

    En vous remerciant pour vos réponses,

    maaxxx

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 319
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 319
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header('Content-Type: image/jpeg'); // Tu dis au nav envoyer du JPEG
    imagegif($dest); // Tu envoie du GIF !
    Il faut soit envoyer un Content-Type image/gif, soit utiliser imagejpeg( ) à la place de imagegif( ).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 13
    Par défaut
    Oui désolé, c'est une erreur de copié/collé, j'ai toujours le problème avec imagejpeg();

    merci quand même de ta réponse,

    maaxxx

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 319
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 319
    Billets dans le blog
    17
    Par défaut
    Donne-nous un script fonctionnel illustrant le bug à tester.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 13
    Par défaut
    Bonjour et merci d'essayer de m'aider.

    code qui marche :
    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
     
    <?php
    	session_start();
    	include("../fonctions/fonctions.php");
    	include("../dbConnection.php");
    	$img = "images/img_1_p1_1ulaamqr.jpg";
    	$dtm = "../_tracabilite/imagesCodes/Dtm_prod_4_francais_1_0_0.jpg";
    	//echo '<img src="' . $img . '">';
    	//echo '<img src="' . $dtm . '">';
    	$dest = imagecreatefromjpeg($img);
    	$src = imagecreatefromjpeg($dtm);
     
    	imagecopymerge($dest, $src, 10, 10, 0, 0, 60, 60, 75);  
     
    	header('Content-Type: image/jpeg');  
    	imagejpeg($dest);
     
    	imagedestroy($dest);  
    	imagedestroy($src);
    ?>
    Code qui m'affiche une image vide :
    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
    23
     
    <?php
    	session_start();
    	include("../fonctions/fonctions.php");
    	include("../dbConnection.php");
    ?>
     
    <?php
    	$img = "images/img_1_p1_1ulaamqr.jpg";
    	$dtm = "../_tracabilite/imagesCodes/Dtm_prod_4_francais_1_0_0.jpg";
    	//echo '<img src="' . $img . '">';
    	//echo '<img src="' . $dtm . '">';
    	$dest = imagecreatefromjpeg($img);
    	$src = imagecreatefromjpeg($dtm);
     
    	imagecopymerge($dest, $src, 10, 10, 0, 0, 60, 60, 75);  
     
    	header('Content-Type: image/jpeg');  
    	imagejpeg($dest);
     
    	imagedestroy($dest);  
    	imagedestroy($src);
    ?>
    Code qui m'affiche le bug expliqué plus haut :
    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
    23
    24
    25
    26
     
    <?php
    	session_start();
    	include("../fonctions/fonctions.php");
    	include("../dbConnection.php");
    ?>
    <head>
    	<script>
    	</script>
    </head>
    <?php
    	$img = "images/img_1_p1_1ulaamqr.jpg";
    	$dtm = "../_tracabilite/imagesCodes/Dtm_prod_4_francais_1_0_0.jpg";
    	//echo '<img src="' . $img . '">';
    	//echo '<img src="' . $dtm . '">';
    	$dest = imagecreatefromjpeg($img);
    	$src = imagecreatefromjpeg($dtm);
     
    	imagecopymerge($dest, $src, 10, 10, 0, 0, 60, 60, 75);  
     
    	header('Content-Type: image/jpeg');  
    	imagejpeg($dest);
     
    	imagedestroy($dest);  
    	imagedestroy($src);
    ?>
    Les seules modifications se font au niveau du HTML (ajout d'un script = page de caractères, ajout de simple HTML = pas d'image), le seul moyen que j'ai de résoudre mon problème serait donc de séparer ma fonction de création d'image de ma page.

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 319
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 319
    Billets dans le blog
    17
    Par défaut
    Ici tu envoies des données au navigateur (retours à la ligne), l'image que tu envoies par la suite est donc invalide.
    Même principe avec le HTML.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 13
    Par défaut
    Voila, j'ai résolu mon problème, comme je devais créer plusieurs watermark (un nombre indéfini) lors du chargement de la page, j'ai simplement envoyé un tableau contenant les images source et de destination pour les traiter dans une page ENTIEREMENT en php, puisque c'était apparemment ca le problème ...

    Merci Seb pour ton aide, pourrais tu m'expliquer plus concrètement pourquoi le fait d'envoyer des données au navigateur altère t-il mes images ?

    En te remerciant,

    maaxxx

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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