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 28/04/2008, 23h20   #1
Membre éprouvé
 
Avatar de IP-Fix
 
Inscription : mars 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 406
Points : 433
Points : 433
Envoyer un message via MSN à IP-Fix
Par défaut découpage de png transparent

Bonjour , voici un petit script destiné a découpé une image png en petite image png de 32x32

Les images sont découpé comme il se doit , par contre , probleme du coté de la transparence , le canal alpha est remplis de noir .. Je sais pas comment faire pour que ça ne soit pas le cas.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 
$IMAGE_URL = "Grassland01.png";
$HAUTEUR = 32;
$LARGEUR = 32;
$REPERTORY = 'img/';
 
$source = imagecreatefrompng($IMAGE_URL);
$details = getimagesize($IMAGE_URL);
 
 
for( $i =0; $i< $details[0]; $i+=$LARGEUR){
	for( $j =0; $j< $details[1]; $j+=$HAUTEUR ){
		$image = imagecreatetruecolor($LARGEUR, $HAUTEUR );
		imagecopy($image,$source, 0, 0, $i,$j, $LARGEUR, $HAUTEUR ); 
		imagepng($image, $REPERTORY.(($i*$details[0]/$LARGEUR/$LARGEUR+$j/$HAUTEUR) ).".png");
	}
}
 
?>
Merci d'avance pour votre aide.
IP-Fix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2008, 22h32   #2
Membre éclairé
 
Avatar de edno
 
Homme Grégory H.
Consultant-Formateur Tests Logiciels
Inscription : décembre 2002
Messages : 156
Détails du profil
Informations personnelles :
Nom : Homme Grégory H.
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Consultant-Formateur Tests Logiciels

Informations forums :
Inscription : décembre 2002
Messages : 156
Points : 308
Points : 308
Je pense que ce commentaire dans la documentation PHP sur la fonction imagepng te sera utile.
__________________
Qui a dit impossible ? C'est juste un peu plus compliqué.
edno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 14h13   #3
Membre éprouvé
 
Avatar de IP-Fix
 
Inscription : mars 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 406
Points : 433
Points : 433
Envoyer un message via MSN à IP-Fix
Merci

Par contre c'est etrange j'ai du remplacé imagecopy par imagecopysampled pour que sa fonctionne , mon code final :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$IMAGE_URL = "Grassland.png";
$HAUTEUR = 32;
$LARGEUR = 32;
$REPERTORY = 'img/';
 
 
function decoupePng( $urlSource, $width, $height, $repertory){
 
	$source = imagecreatefrompng($urlSource);
	$details = getimagesize($urlSource);
 
	for( $i =0; $i< $details[0]; $i+=$width){
		for( $j =0; $j< $details[1]; $j+=32){
			$image = imagecreatetruecolor($width, $height);
			imagealphablending($image, false);
			imagecopyresampled($image,$source, 0, 0, $i,$j, $width, $height,$width,$height); 
			imagesavealpha($image, true);
			imagepng($image, $repertory.($i/$width*$details[0]/$width+$j/$height).".png");
		}
	}
}
 
decoupePng( $IMAGE_URL ,$LARGEUR, $HAUTEUR,$REPERTORY );
You rox
IP-Fix 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 20h07.


 
 
 
 
Partenaires

Hébergement Web