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] PNG Transparence - Problème Local/Serveur


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut [GD] PNG Transparence - Problème Local/Serveur
    Bonjour,

    Une question pour les connaisseurs, j'ai développé un script qui redimensionne un PNG passé en paramètre et applique un fond transparent (Pour faire un détourage), puis affiche l'image. (En fait l'image est appelé depuis un site flash), j en'ai pas de problème vis à vis du PNG et IE, c'est pas ça le souci.

    Donc en local (EasyPHP 1.8), cela fonctionne super bien. Par contre sur le serveur, j'ai une belle croix rouge (l'image ne s'affiche pas du tout).

    J'ai fait un phpinfo() pour comparer GD j'ai pas noté de différence flagrante...

    En local :

    GD Support enabled
    GD Version bundled (2.0.28 compatible)
    FreeType Support enabled
    FreeType Linkage with freetype
    GIF Read Support enabled
    GIF Create Support enabled
    JPG Support enabled
    PNG Support enabled
    WBMP Support enabled
    XBM Support enabled

    Serveur :

    GD Support enabled
    GD Version bundled (2.0.28 compatible)
    FreeType Support enabled
    FreeType Linkage with freetype
    FreeType Version 2.1.7
    T1Lib Support enabled
    GIF Read Support enabled
    GIF Create Support enabled
    JPG Support enabled
    PNG Support enabled
    WBMP Support enabled
    XBM Support enabled

    Il y a un truc que je pige pas.

    Mon script :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    if (isset($img))
    {
    if (!isset($w_max)) { $w_max = 100; }
    if (!isset($h_max)) { $h_max = 75; }
    if (!isset($save)) { $save = 0; }
     
    $taille = getimagesize($img);
    $h_i = $taille[1]; 
    $w_i = $taille[0];
     
     
     if($h_i >$h_max)
    	{ 
    	$convert=$h_max/$h_i;
    	$h_i=$h_max;
    	$w_i=ceil($w_i*$convert); 
    	} 
     
     
     if($w_i >$w_max)
    	{ 
    	$convert=$w_max/$w_i;
    	$w_i=$w_max;
    	$h_i=ceil($h_i*$convert); 
    	} ; 
     
    $img_in = imagecreatefrompng($img);
    //$img_in = imagecreatefromjpeg($img);
    $img_out = imagecreatetruecolor($w_max, $h_max);
     
    $rgb = imagecolorat($img_in, 1, 1);
    $pixel = imagecolorsforindex($img_in, $rgb);
    imagefill ($img_out, 0, 0, $rgb);
     
    $decal_gauche = ceil(($w_max - $w_i) / 2);
    $decal_haut = ceil(($h_max - $h_i) / 2);
     
    imagecopyresampled($img_out, $img_in, $decal_gauche, $decal_haut, 0, 0, $w_i, $h_i, imagesx($img_in), imagesy($img_in));
     
    imagetruecolortopalette($img_out, false, 256); // convert
     
    $trans_color = imagecolorresolve( $img_out, $pixel[red], $pixel[green], $pixel[blue]);
    imagecolortransparent ( $img_out, $trans_color );
     
    //header('Last-Modified: '.gmdate('D, d M Y H:i:s', $timestamp).' GMT');
    header("Content-Type: image/png");
    imagepng($img_out,"",100);
     
    }
    else
    {
        exit();
    }
    Exemple d'appel : miniature.php?img=monimage.png&w_max=200&h_max=100

    On prend l'image, on la redimensionne proportionnellement, on prend la coourleur du premier pixel pour la mettre en transparent puis on affiche.

    Merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 77
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    as tu bien tous les droits sur les dossiers du serveur?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par denn
    as tu bien tous les droits sur les dossiers du serveur?
    Oui bien entendu !

    C'est un hébergement pro, j'ai fait un test : même sur Free ça marche.

    Merci

  4. #4
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Salut... deux chose... est tu sur du chemin vers ton image (c'est tout con mais ça arrive)... quand tu fais clic droit sur l'image, afficher l'image qu'est ce qu'il t'affiche... .. ?

    @ tchaOo°

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par kankrelune
    Salut... deux chose... est tu sur du chemin vers ton image (c'est tout con mais ça arrive)... quand tu fais clic droit sur l'image, afficher l'image qu'est ce qu'il t'affiche... .. ?

    @ tchaOo°
    Je suis sûr du chemin et "Clic droit / Afficher l'image" j'ai droit à la croix rouge de remplacement donc le script est bon c'est juste que le serveur n'est pas "équipé" pour le traitement des PNG. Je dis ça car je viens d'avoir confirmation au niveau de l'hébergeur. Ils vont mettre ça en place pour la semaine prochaine. (Apparement un problème de PNG dans GD qui n'était pas compilé).

    Merci de vous être penchés sur mon problème !

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

Discussions similaires

  1. Problème page blanche local/serveur
    Par hidewak dans le forum Langage
    Réponses: 7
    Dernier message: 25/08/2011, 14h17
  2. Problème exécution serveur/local
    Par Lolly dans le forum Administration et Installation
    Réponses: 0
    Dernier message: 30/12/2010, 09h55
  3. Problème imprimantes serveur local
    Par bstcricq dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 19/01/2009, 22h41
  4. Problème passage local à serveur distant linux!
    Par boniface dans le forum Web
    Réponses: 5
    Dernier message: 19/03/2007, 16h42
  5. [EasyPHP] Problème en serveur local
    Par charliejo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 25/05/2006, 22h59

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