Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > GD
GD Forum d'entraide pour l'extension GD permettant de manipuler des images en PHP. Avant de poster -> tutoriels GD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/09/2006, 09h06   #1
Invité de passage
 
Inscription : septembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 7
Points : 2
Points : 2
Par défaut 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 :
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.
george101 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2006, 09h56   #2
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 69
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2005
Messages : 69
Points : 27
Points : 27
Bonjour,

as tu bien tous les droits sur les dossiers du serveur?
denn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2006, 10h34   #3
Invité de passage
 
Inscription : septembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 7
Points : 2
Points : 2
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
george101 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2006, 12h57   #4
Membre chevronné
 
Avatar de kankrelune
 
Inscription : décembre 2005
Messages : 766
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 766
Points : 745
Points : 745
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°
kankrelune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2006, 14h38   #5
Invité de passage
 
Inscription : septembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 7
Points : 2
Points : 2
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 !
george101 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h35.


 
 
 
 
Partenaires

Hébergement Web