begin process at 2012 05 27 18:02:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > PHPIMG RESIZER: CRÉATEURS D'IMAGES TOUS FORMATS POUR AFFICHER DANS TOUTES LES DIMENSIONS DÉSIRÉES

PHPIMG RESIZER: CRÉATEURS D'IMAGES TOUS FORMATS POUR AFFICHER DANS TOUTES LES DIMENSIONS DÉSIRÉES


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :image, resize Niveau :Débutant Date de création :30/10/2006 Date de mise à jour :08/11/2006 22:03:35 Vu :5 931

Auteur : broumbroum

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Source php utilisables sur les serveurs apache/php 4 et 5 avec la librairie GD activée.
- arguments pour charger la page: image.php?file=imagefileURL&type=format&w=largeur& h=hauteur

- les nouvelles dimensions de l'image sont ajustées aux dimensions originales (pas de distortions)
(il est donc possible d'ommettre les arguments largeur et hauteur indépendamment :) )

Source

  • <?php
  • /***** arguments pour charger la page: image.php?file=imagefileURL&type=format&w=largeur&h=hauteur ******/
  • if(file_exists($f = $_GET['file'])) {
  • /** retourne les nouvelles dimensions de l'image ajustée aux dimensions originales (pas de distortions)*/
  • function getSize($im) {
  • if(isset($_GET['w'])) $w = $_GET['w'];
  • if(isset($_GET['h'])) $h = $_GET['h'];
  • if(!isset($w) || $w == 0) $w = imagesx($im)/imagesy($im) * $h;
  • if(!isset($h) || $h == 0) $h = imagesy($im)/imagesx($im) * $w;
  • if($w == 0 && $h == 0) { $w = imagesx($im); $h = imagesy($im); }
  • 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 = imagecreatetruecolor($s[0], $s[1]);
  • // ici la couleur transparente sera le noir de l'image vide true colors
  • $trans = imagecolorallocate($im_r,0,0,0);
  • imagecolortransparent($im_r,$trans);
  • // une fois resamplée l'image recompose avec un fond transparent pour garder l'image départ intacte!
  • 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 = imagecreatetruecolor($s[0], $s[1]); $trans = imagecolorallocate($im_r,0,0,0);
  • imagecolortransparent($im_r,$trans); // comme le format gif transparence
  • 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);
  • } // endif _get(type)
  • } else {
  • die("Pas de fichier ".$_GET['file']." sur ce serveur");
  • }// endif file_exists()
  • ?>
<?php
/***** arguments pour charger la page: image.php?file=imagefileURL&type=format&w=largeur&h=hauteur ******/
if(file_exists($f = $_GET['file'])) {

/** retourne les nouvelles dimensions de l'image ajustée aux dimensions originales (pas de distortions)*/
function getSize($im) {
	if(isset($_GET['w'])) $w = $_GET['w'];
	if(isset($_GET['h'])) $h = $_GET['h'];
	if(!isset($w) || $w == 0) $w = imagesx($im)/imagesy($im) * $h;
	if(!isset($h) || $h == 0) $h = imagesy($im)/imagesx($im) * $w;
	if($w == 0 && $h == 0) { $w = imagesx($im); $h = imagesy($im); }
	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 = imagecreatetruecolor($s[0], $s[1]); 
   // ici la couleur transparente sera le noir de l'image vide true colors
$trans = imagecolorallocate($im_r,0,0,0);
imagecolortransparent($im_r,$trans);
 // une fois resamplée l'image recompose avec un fond transparent pour garder l'image départ intacte!
	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 = imagecreatetruecolor($s[0], $s[1]); $trans = imagecolorallocate($im_r,0,0,0);
	imagecolortransparent($im_r,$trans); // comme le format gif transparence
	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);
    } // endif _get(type) 

} else {
	die("Pas de fichier ".$_GET['file']." sur ce serveur");
}// endif file_exists()
?> 

 Conclusion

Au final il faut noter la composition d'une image true color pour applique l'image originale resamplée.


 Historique

30 octobre 2006 06:07:31 :
description erronée... ;)
30 octobre 2006 06:09:54 :
descrition erronée
08 novembre 2006 22:03:35 :
transparency with true color background image

 Sources du même auteur

Source avec Zip GÉNÉRATION IMAGE DEPUIS SQL ET SAUVEGARDE VERS SQL AVEC PHP4

 Sources de la même categorie

Source avec Zip Source avec une capture CAMEMBERT BD par dardelphi
Source avec une capture AMÉLIORATION : CAMEMBERT par asphator
GESTION DE COULEUR par manuche
Source avec Zip NAVIGATOR (+CSSDETECTOR) par xXVoxPopuliXx
COMMENT, AVEC GD, DESSINER UN RECTANGLE TRANSPARENT PLEIN AV... par Rainbow

 Sources en rapport avec celle ci

REDIMENSIONNEMENT D'IMAGE PHP par JStevens
Source avec Zip Source avec une capture GESTIONNAIRE DE NEWS BASIQUE AVEC UPLOAD D'IMAGES par cod57
Source avec Zip Source avec une capture UPLOADEUR DE FICHIERS MULTIPLES V1 par cod57
CLASS GALERIE PHOTO par Xiryl
MODIFIER UNE IMAGE(REDIMENSIONNER) STOKER DANS LA BASE DE DO... par farzit

Commentaires et avis

Commentaire de TheSin le 31/10/2006 09:11:37

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 ;-)

Commentaire de wizard512 le 08/11/2006 20:39:51

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 ~~

Commentaire de wizard512 le 08/11/2006 20:57:19

Heu, j'avais pas tous vus, mais moi je l'aurais plutot remixé
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 ~~

Commentaire de broumbroum le 08/11/2006 22:09:30

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!)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Image Resize [ par pouda ] Salut,pourrais-je avoir une manière simple de générer une miniature d'une photo qui se trouve sur mon hebergeur??? lol......plien de script existe je Upload d'Image et resize de cette image [ par 4feeling ] je cherche un petit bout de script qui permettrai d'uploader une image jpeg et l'enregistrer dans une taille précise. Par exemple on uploade, et on en Resize et affiche image [ par Anus_hurlant ] bonjour, je voudrai faire une copie miniature d'une grande image et j'aimerai afficher l'image miniature comme lien. Seulement j'ai quelques souci qua Afficher une image correspondante [ par Prototype51 ] Bonjour à tous, Voilà bientôt 2 jours que je me casse la tête sur ce problème : Comment afficher une image au passage de la souris dans un tableau. J dimensions automatique [ par moveyourfeet79 ] moveyourfeet &lt;BODY onLoad="fc();"&gt;&lt;body&nbsp; oncontextmenu="return false"&lt;meta http-equiv="Cache-Control" content="no-cache"&gt;&lt;META Besoin de Votre Aide !!!!! [ par christ_sand ] Bonjour a tous et merci par avance de votre aide !!Voila j'ai une webcam sur mon site je voudrai que les visiteur puisse enregistr&#233; une Image dan mysql et image, img dans ... [ par goldziko9 ] Salut tous le mode, j'ai un probleme avec mysql, bon :j'ai un serveur apache local et mysql, je veux envoyer des image dans sql, je veux dire je enreg Upload d'image [ par Anus_hurlant ] Hello,je souhaite copier une image envoy&#233;e par l'utilisateur et j'utilise pour cela un fomulaire qui se pr&#233;sente ainsi :&lt;form name='inser images [ par picogunsy ] Bonjour &#224; tous... voila j'ai un ptit probl&#232;me ... aussi non je poserais pas de question lol j'importe des images de ma bd pour un systeme Problème de vérification d'image [ par ckhalilo ] BonjoursJ'ai un code d'image se trouvant sur un fichierstring.phpqui g&#233;n&#233;re une image GD &#224; partir d'un text $textalors j'ai essay&#233;


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales