|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
REDIMENSIONNEMENT D'UNE IMAGES, GIF, PNG, JPEG, JPG
Information sur la source
Description
J'éspère que ce code vous sera utile, je n'ai pas encore eu de problème avec ce code, je l'ai améliorer au fur et à mesure du temps. Elle redimenssione les images en gardant les proportions, bien sur ! Vous avez besoin de la fonction "mime_content_type" sur votre serveur pour afficher correctement l'image. Pour simplifier le nombre de variable faites une seconde fonction pour juste un affichage ou un enregistrement, exemple : // Voir une image function show_image( $src, $size ) { // 2 variables, une pour la source et une pour la taile, la taille s'exprime comme ceci (100x100 ou 200x200 etc.) return do_image( $src, '', $size, 1, 0 ); } // Enregistré l'image function save_image( $src, $size, $dest, $del ) { // 4 variables, la source, la taille maximun, la destination de sauvegarde, si on supprime la source (0=non, 1=oui) return do_image( $src, $dest, $size, 0, $del ); } // La fonction "do_image" do_image( string filename src, string filename dest, string maxSize, int show, int del ) Pour le paramêtre "show" 1 signifie l'affiché, 0 signifie l'inverse logique. Pareils pour le paramêtre "del", 1 signie supprimé le fichier une fois convertis, 0 signe ne pas le supprimé après l'affichage ou l'enregistrement
Source
- function do_image($src, $dest, $size, $show, $del=1) {
-
- // Extension du fichier
- $ext = strtolower( substr( strrchr( $src, '.' ), 1 ) );
-
- // Si l'extension est reconnue
- if( !in_array( $ext, array( 'jpg', 'jpeg', 'gif', 'png' ) ) ) ) {
-
- return FALSE;
- }
-
- // Propriété du fichier
- list( $width, $height, $type, $attr ) = getimagesize($src);
-
- // Contrôle du type d'image
- if( !in_array( $type, array( 1,2,3 ) ) ) {
-
- if( $del == 1 ) {
-
- unlink( $src );
- }
-
- return FALSE;
- }
-
- // Création d'une images a partir de l'original
- switch( $type ) {
-
- case 1: $tmp = imagecreatefromgif($src); break;
- case 2: $tmp = imagecreatefromjpeg($src); break;
- case 3: $tmp = imagecreatefrompng($src); break;
-
- default : return FALSE;
- }
-
- // Infos des taillles maximum
- $size = empty( $size ) || strpos( strtolower( $size ), 'x' ) === FALSE ? 100x100 : $size;
-
- list( $max_width, $max_height ) = explode('x', $size);
-
- // Calcul des tailles proportionnelles
- if( $width > $max_width || $height > $max_height ) {
-
- if( $width >= $height ) {
-
- if( $width > $max_width ) {
-
- $width_img = $max_width;
- $propB = $width/$width_img;
- $height_img = floor($height/$propB);
-
- }
-
- if( $height_img > $max_height ) {
-
- $height_img = $max_height;
- $propB = $height/$height_img;
- $width_img = floor($width/$propB);
-
- }
-
- }
- else {
-
- if( $height > $max_height ) {
-
- $height_img = $max_height;
- $propB = $height/$height_img;
- $width_img = floor($width/$propB);
-
- }
-
- if( $width_img > $max_width ) {
-
- $width_img = $max_width;
- $propB = $width/$width_img;
- $height_img = floor($height/$propB);
-
- }
-
- }
- }
- else {
-
- $width_img = $width;
- $height_img = $height;
- }
-
- // Création de l'image trueColor
- $img = imagecreatetruecolor($width_img, $height_img);
-
- // Copie d'un contenue vers un autre, rééchantillonnage
- if( imagecopyresampled($img, $tmp, 0, 0, 0, 0, $width_img, $height_img, $width, $height) !== false ) {
-
- // Enregistrement ou affichage
- if( $show != 1 ) {
-
- switch( $type ) {
-
- case 1 : imagegif($img, $dest); break;
- case 2 : imagejpeg($img, $dest, 100); break;
- case 3 : imagepng($img, $dest); break;
-
- default: return FALSE;
- }
-
- }
- else {
-
- @header("Content-type: ". mime_content_type( $src ) );
-
- switch( $type ) {
-
- case 1 : imagegif($img); exit; break;
- case 2 : imagejpeg($img, '', 100); exit; break;
- case 3 : imagepng($img); exit; break;
-
- default: return FALSE;
- }
-
- }
- }
-
- // On supprime $del est égal à 1
- if( $del == 1 )
- unlink($src);
-
- // Suppression des variables
- unset($img, $tmp, $src);
-
- }
function do_image($src, $dest, $size, $show, $del=1) {
// Extension du fichier
$ext = strtolower( substr( strrchr( $src, '.' ), 1 ) );
// Si l'extension est reconnue
if( !in_array( $ext, array( 'jpg', 'jpeg', 'gif', 'png' ) ) ) ) {
return FALSE;
}
// Propriété du fichier
list( $width, $height, $type, $attr ) = getimagesize($src);
// Contrôle du type d'image
if( !in_array( $type, array( 1,2,3 ) ) ) {
if( $del == 1 ) {
unlink( $src );
}
return FALSE;
}
// Création d'une images a partir de l'original
switch( $type ) {
case 1: $tmp = imagecreatefromgif($src); break;
case 2: $tmp = imagecreatefromjpeg($src); break;
case 3: $tmp = imagecreatefrompng($src); break;
default : return FALSE;
}
// Infos des taillles maximum
$size = empty( $size ) || strpos( strtolower( $size ), 'x' ) === FALSE ? 100x100 : $size;
list( $max_width, $max_height ) = explode('x', $size);
// Calcul des tailles proportionnelles
if( $width > $max_width || $height > $max_height ) {
if( $width >= $height ) {
if( $width > $max_width ) {
$width_img = $max_width;
$propB = $width/$width_img;
$height_img = floor($height/$propB);
}
if( $height_img > $max_height ) {
$height_img = $max_height;
$propB = $height/$height_img;
$width_img = floor($width/$propB);
}
}
else {
if( $height > $max_height ) {
$height_img = $max_height;
$propB = $height/$height_img;
$width_img = floor($width/$propB);
}
if( $width_img > $max_width ) {
$width_img = $max_width;
$propB = $width/$width_img;
$height_img = floor($height/$propB);
}
}
}
else {
$width_img = $width;
$height_img = $height;
}
// Création de l'image trueColor
$img = imagecreatetruecolor($width_img, $height_img);
// Copie d'un contenue vers un autre, rééchantillonnage
if( imagecopyresampled($img, $tmp, 0, 0, 0, 0, $width_img, $height_img, $width, $height) !== false ) {
// Enregistrement ou affichage
if( $show != 1 ) {
switch( $type ) {
case 1 : imagegif($img, $dest); break;
case 2 : imagejpeg($img, $dest, 100); break;
case 3 : imagepng($img, $dest); break;
default: return FALSE;
}
}
else {
@header("Content-type: ". mime_content_type( $src ) );
switch( $type ) {
case 1 : imagegif($img); exit; break;
case 2 : imagejpeg($img, '', 100); exit; break;
case 3 : imagepng($img); exit; break;
default: return FALSE;
}
}
}
// On supprime $del est égal à 1
if( $del == 1 )
unlink($src);
// Suppression des variables
unset($img, $tmp, $src);
}
Conclusion
Laissez moi des critiques avec des solutions, si il n'y pas de solutions au problème c'est une critique qui n'est pas utile.
Historique
- 17 décembre 2006 19:10:26 :
- J'ai modifier l'explication afin quelle soit plus clair.
- 21 décembre 2006 10:45:02 :
- Corrections du code selon des critiques du code
- 22 mai 2007 13:44:32 :
- Corrections diverses
- 22 mai 2007 13:49:48 :
- Corrections des dimensions ...
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
:::::: URGENT !!! ENVOI D'IMAGE PAR FTP !!!! ERREUR :::::: [ par kkz_mil3k ]
j'essaie d'nevoyer un fichier image gif ou jpg sur un ftp via ce formulaire php :------------------------------------------- //**connecte au ftp sc
Comment insérer un champs image ds ma table ?? [ par inceV ]
Salut à tous et bonne année 2002 !!!Bon, je n'arrive pas à créer un champs 'image' ds ma table et je ne comprends pas tp commen ça marche, pourriez-vo
Faire unr image sur le serveur en PHP [ par fabiin ]
Salut !En ASP, il y a un composant ki permet de créer une image sur le serveur,...on peu avec 2-3 ligne de codes, faire un dégradé, mettre du texte, e
Insérer une image dans une autre [ par cduf ]
Je sais créer une image (compteur) avec des commandes php GD, mais comment l'insérer dans une autre (bannière). Merci de m'aider.Email : cdufetelle@wa
envoyer une image dans le $message de mail() [ par linov ]
Bonjour,Comment faire pour envoyer une image dans le $message envoyé par la fonction mail() ?Syntaxe ? Paramètres ? Est-ce possible ?Merci de votre ai
include image [ par erich10 ]
comment faire un include d'une image ?et comment faire en plus un lien sur cette image?merci
générer des miniatures avec gd 1.6 [ par vegetaline ]
muhaha alors là c'est rigolo, un super défi pour les programmeurs fous!ok j'ai le code pour générer des miniatures grâce au php, mais ça marche qu'ave
MySQL et images [ par Marneus Calgar ]
SalutJ'aimerais savoir s'il est possible de stocker des images dans une table MySQL et d'y accéder depuis une page PHP. En fait, je voudrais faire un
MySQL et images [ par Marneus Calgar ]
SalutJ'aimerais savoir s'il est possible de stocker des images dans une table MySQL et d'y accéder depuis une page PHP. En fait, je voudrais faire un
Ne pas afficher la barre de Menu Image [ par microdav ]
Bonjour à vous Internaute,je vous soumets une petite question...Je recherche Code permettant de ne pas faire afficher la barre de menu "Image" sur une
|
Téléchargements
Logiciels à télécharger sur le même thème :
|