Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 10/01/2012, 11h04   #1
Invité régulier
 
Antoine
Inscription : février 2011
Messages : 33
Détails du profil
Informations personnelles :
Nom : Antoine
Localisation : France

Informations forums :
Inscription : février 2011
Messages : 33
Points : 9
Points : 9
Par défaut php images probleme avec png

Bonjour, voilà mon problème :
j'ai une fonction pour redimensionner une image avec découpage pour les images jpeg qui marche très bien, j'ai voulu qu'elle face de même pour les png mais la sa ne marche pas et je ne vois pas pour quoi donc j'en viens a votre aide.

l'image miniature est créer en png mais elle fait 0 ko.

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
 
if(in_array($imageType, array('jpg', 'jpeg', 'JPG', 'JPEG')))
	{
	  $resimage = imagecreatefromjpeg($oldname); 
	  $newimage = imagecreatetruecolor($nw, $nh);  // use alternate function if not installed
	  imageCopyResampled($newimage, $resimage,0,0,0,0,$nw, $nh, $w, $h);
 
	  // Making the final cropped thumbnail
 
	  $viewimage = imagecreatetruecolor($thumbw, $thumbh);
	  imagecopy($viewimage, $newimage, 0, 0, 0, 0, $nw, $nh);
 
	  // saving
	  imageJpeg($viewimage, $newname, 85);
	}
	else
	{
	  $resimage = imagecreatefrompng($oldname); 
	  $newimage = imagecreatetruecolor($nw, $nh);  // use alternate function if not installed
	  imageCopyResampled($newimage, $resimage,0,0,0,0,$nw, $nh, $w, $h);
 
	  // Making the final cropped thumbnail
 
	  $viewimage = imagecreatetruecolor($thumbw, $thumbh);
	  imagecopy($viewimage, $newimage, 0, 0, 0, 0, $nw, $nh);
 
	  // saving
	  imagepng($viewimage, $newname, 85);
	}
Je n'ai pas mit les variables, car la fonction jpeg marche donc cela ne vient pas de là.

Merci pour celui qui arrivera à me debloquer
skyser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 12h52   #2
Membre du Club
 
Homme jean
Inscription : octobre 2011
Messages : 95
Détails du profil
Informations personnelles :
Nom : Homme jean
Localisation : France, Corse (Corse)

Informations forums :
Inscription : octobre 2011
Messages : 95
Points : 52
Points : 52
Bonjour, premier truc qui frappe c'est à la 1ère ligne :

Code :
if(in_array($imageType, array('jpg', 'jpeg', 'JPG', 'JPEG')))
essaye de rajouter le format 'png' dans la liste des formats permis.

et pour t'éviter d'avoir à gérer la casse, utilise strtolower :

Code :
if(in_array(strtolower($imageType), array('jpg', 'jpeg', 'png')))
dev14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 15h34   #3
Membre éclairé
 
Avatar de Nowwis
 
Homme
Développeur Web
Inscription : juin 2009
Messages : 363
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2009
Messages : 363
Points : 365
Points : 365
La qualité de l'image en PNG et de 0 à 10 et non de 0 à 100 comme JPG.

Ton erreur vient donc d'ici :

Code :
imageJpeg($viewimage, $newname, 85);

Je suppose que tu as juste remplacer par imagepng();

Donc mets un petit
Code :
imagepng($viewimage, $newname, 8);
Logiquement ça passera mieux
Nowwis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 22h33   #4
Invité régulier
 
Antoine
Inscription : février 2011
Messages : 33
Détails du profil
Informations personnelles :
Nom : Antoine
Localisation : France

Informations forums :
Inscription : février 2011
Messages : 33
Points : 9
Points : 9
ok je vais essayer, sinon dans ma condition je ne met pas png car je traite différemment les png des jpg sinon merci pour les astuces

=> génial sa marche le seul problème est que la transparence est en noir sur les png

nouveau code
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
 
if(in_array(strtolower($imageType), array('jpg', 'jpeg')))
	{
	  $resimage = imagecreatefromjpeg($oldname); 
	  $newimage = imagecreatetruecolor($nw, $nh);  // use alternate function if not installed
	  imageCopyResampled($newimage, $resimage,0,0,0,0,$nw, $nh, $w, $h);
 
	  // Making the final cropped thumbnail
 
	  $viewimage = imagecreatetruecolor($thumbw, $thumbh);
	  imagecopy($viewimage, $newimage, 0, 0, 0, 0, $nw, $nh);
 
	  // saving
	  imageJpeg($viewimage, $newname, 85);
	}
	else
	{
	  $resimage = imagecreatefrompng($oldname); 
	  $newimage = imagecreatetruecolor($nw, $nh);  // use alternate function if not installed
	  imageCopyResampled($newimage, $resimage,0,0,0,0,$nw, $nh, $w, $h);
 
	  // Making the final cropped thumbnail
 
	  $viewimage = imagecreatetruecolor($thumbw, $thumbh);
	  imagecopy($viewimage, $newimage, 0, 0, 0, 0, $nw, $nh);
 
	  // saving
	  imagepng($viewimage, $newname, 8);
	}
skyser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 22h41   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
tu devrais plutôt faire un image_type_to_mime_type que de faire une condition sur l'extension
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h29.


 
 
 
 
Partenaires

Hébergement Web