Modifier teinte d'un png transparent

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Modifier teinte d'un png transparent

par savageman » 09 mars 2009, 19:05

<?php
 // ouvre l'image d'origine 
 $theimage = "test.png"; 
 $im = imagecreatefrompng($theimage); 

 // détermine sa taille 
 $size = getimagesize($theimage); 
 $w = $size[0]; 
 $h = $size[1]; 

 // crée l'image de sortie 
 $im2 =  imagecreatetruecolor($w/2,$h/2);

$transparent = imagecolortransparent( $im );
if($transparent >= 0 && $transparent < imagecolorstotal( $im )) {
    $transparentcolor = imagecolorsforindex( $im, $transparent );
    $newtransparentcolor = imagecolorallocate(
        $im2,
        $transparentcolor['red'],
        $transparentcolor['green'],
        $transparentcolor['blue']
    );
    imagefill( $imtn, 0, 0, $newtransparentcolor );
    imagecolortransparent( $im2, $newtransparentcolor );
}

 imagealphablending($im2,false); 
 imagesavealpha($im2,true); 

 // remplit l'image de sortie 
 imagecopyresampled($im2,$im,0,0,0,0,$w/2,$h/2,$w,$h); 

//Modifie le gamma au passage 
 imagegammacorrect($im2,1,2.2); 

 // affiche l'image 
 header("Content-type: image/x-png" ); 
 imagepng($im2);
J'ai ça à te proposer (http://fr.php.net/manual/fr/function.im ... .php#76648). Si ça marche pas bah... J'ai rien d'autre ^^

par kek » 09 mars 2009, 15:52

bon ben apparemment c'est pas possible ? Pourtant ce serait super pratique :(

Modifier teinte d'un png transparent

par kek » 08 mars 2009, 16:16

Hello,

je cherche à modifier la teinte d'un png transparent, avec la librairie GD.
Je peux modifier la teinte d'un png classique, mais dès qu'il est transparent, il me ressort un png sans transparence..

voilà mon code, par exemple pour modifier le gamma :

Code : Tout sélectionner

// ouvre l'image d'origine $theimage = "test.png"; $im = imagecreatefrompng($theimage); // détermine sa taille $size = getimagesize($theimage); $w = $size[0]; $h = $size[1]; // crée l'image de sortie $im2 = imagecreatetruecolor($w/2,$h/2); imagealphablending($im2,false); imagesavealpha($im2,true); // remplit l'image de sortie imagecopyresampled($im2,$im,0,0,0,0,$w/2,$h/2,$w,$h); //Modifie le gamma au passage imagegammacorrect($im2,1,2.2); // affiche l'image header("Content-type: image/x-png" ); imagepng($im2);
merci à qui pourra m'aider !
Sinon il faudra que je regarde vers imagemagick apparemment..
kek