broumbroum
Messages postés39Date d'inscriptionjeudi 17 août 2006StatutMembreDernière intervention10 septembre 2007 8 nov. 2006 à 22:09
il faut noter la différence pour les images gif et png qui peuvent inclure un fond transparent, et donc il y a besoin de spécifier un fond transparent avec l'image resamplée: avant de fixer le bug, je créais un rectangle d'un couleur quelconque à rendre transparent, puis j'ai finalement corrigé avec une indication importante sur les images true color: le fond de l'image créée est originalement noir, donc il suffit de fixer la transparence sur la couleur noire de fond avant de copiée l'image redimensionnée (nb. celle-ci n'est pas affectée par la commande précédente de transparence!)
wizard512
Messages postés459Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention11 mai 20132 8 nov. 2006 à 20:57
Heu, j'avais pas tous vus, mais moi je l'aurais plutot remixé
comme sa :
Bon, ok j'avous ya pas tros de différence, mais bon, .... ^^'
~~ DotWizard512 ~~
wizard512
Messages postés459Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention11 mai 20132 8 nov. 2006 à 20:39
Il faudrait comme même vérifier l'existance de "$_GET[ 'file' ]",
nn..?! ^^'
Parceque sinon sa risque d'affiché des erreurs
si tu tombe sur un p'tit fouineur....
~~ DotWizard512 ~~
TheSin
Messages postés331Date d'inscriptionmardi 12 novembre 2002StatutMembreDernière intervention10 février 2009 31 oct. 2006 à 09:11
Mince ... moi qui croyait avoir enfin trouvé une source pour charger du bitmap ...... lol
(bin oui, y'a bien écrit tous formats)
à part ca, c'est pas mal, et ca reste classique, ça peut servir pour des débutants dans GD ;-)
8 nov. 2006 à 22:09
8 nov. 2006 à 20:57
comme sa :
############################################################
<?php
/***** arguments pour charger la page: image.php?file=imagefileURL&type=format&w=largeur&h=hauteur ******/
if( !isset ( $_GET[ 'file' ] ) or empty( $_GET[ 'file' ] ) )
{
die( "TON MESSAGE D'ERREUR" );
}
$f = $_GET['file'];
/** retourne les nouvelles dimensions de l'image ajustée aux dimensions originales (pas de distortions)*/
function getSize( $im )
{
$h = imagesy( $im ); // Si ....
$w = imagesx( $im ); // Variable inéxistante
if( !isset( $_GET[ 'w' ] ) or !is_numeric( $_GET[ 'w' ] ) or empty( $_GET[ 'w' ] ) )
{
$w = imagesx( $im ) / imagesy( $im ) * $h;
}
else
{
$w = $_GET[ 'w' ];
}
if( !isset( $_GET[ 'h' ] ) or !is_numeric( $_GET[ 'h' ] ) or empty( $_GET[ 'h' ] ) )
{
$h = imagesy( $im ) / imagesx( $im ) * $w;
}
else
{
$h = $_GET[ 'h' ];
}
return array( $w , $h );
}
// les formats supportés par php 4 et 5
if ( function_exists( "imagegif" ) && $_GET[ 'type' ] == 'gif' ) {
$im = imagecreatefromgif( $f );
$s = getSize( $im );
$im_r = imagecreate( $s[ 0 ], $s[ 1 ] );
$trans = imagecolorallocate( $im_r , 255 , 99 , 140 );
imagefilledrectangle( $im_r , 0 , 0 , $s[ 0 ], $s[ 1 ], $trans );
imagecolortransparent( $im_r , $trans );
imagecopyresampled( $im_r, $im, 0, 0, 0, 0, $s[ 0 ], $s[ 1 ], imagesx( $im ), imagesy( $im ) );
header( "Content-type: image/gif" );
imagegif( $im_r );
}
elseif ( function_exists( "imagejpeg" ) && $_GET[ 'type' ] == 'jpeg' )
{
$im = imagecreatefromjpeg( $f );
$s = getSize( $im );
$im_r = imagecreatetruecolor( $s[ 0 ], $s[ 1 ] );
imagecopyresampled( $im_r, $im, 0, 0, 0, 0, $s[ 0 ], $s[ 1 ], imagesx( $im ), imagesy( $im ) );
header( "Content-type: image/jpeg" );
imagejpeg( $im_r, "", 80 );
}
elseif ( function_exists( "imagepng" ) && $_GET['type'] == 'png' )
{
$im = imagecreatefrompng( $f );
$s = getSize( $im );
$im_r = imagecreate( $s[ 0 ], $s[ 1 ] );
$trans = imagecolorallocate( $im_r , 255 , 99 , 140 );
imagefilledrectangle( $im_r , 0 , 0 , $s[ 0 ], $s[ 1 ], $trans );
imagecolortransparent( $im_r, $trans );
imagecopyresampled( $im_r, $im, 0, 0, 0, 0, $s[ 0 ], $s[ 1 ], imagesx( $im ), imagesy( $im ) );
header( "Content-type: image/png" );
imagepng( $im_r );
} elseif ( function_exists( "imagewbmp" ) && $_GET['type'] == 'wbmp' )
{
$im = imagecreatefrowbmp( $f );
$s = getSize( $im );
$im_r = imagecreatetruecolor( $s[ 0 ], $s[ 1 ] );
imagecopyresampled( $im_r, $im, 0, 0, 0, 0, $s[ 0 ], $s[ 1 ], imagesx( $im ), imagesy( $im ) );
header( "Content-type: image/vnd.wap.wbmp" );
imagewbmp( $im_r );
} else {
die( "Pas de support graphique avec PHP sur ce serveur" );
}
?>
##############################################################
Bon, ok j'avous ya pas tros de différence, mais bon, .... ^^'
~~ DotWizard512 ~~
8 nov. 2006 à 20:39
nn..?! ^^'
Parceque sinon sa risque d'affiché des erreurs
si tu tombe sur un p'tit fouineur....
~~ DotWizard512 ~~
31 oct. 2006 à 09:11
(bin oui, y'a bien écrit tous formats)
à part ca, c'est pas mal, et ca reste classique, ça peut servir pour des débutants dans GD ;-)