Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
Cette fonction permet la création d'une vignette à partir d'une image jpg, gif ou png.
si la hauteur n'est pas precisée, il la prendra proportionnelle à la hauteur d'origine.
<?php
function vignette($img, $img_dest, $width=80, $height=0) {
$size = GetImageSize($img);
$src_w = $size[0];
$src_h = $size[1];
if ($height == 0) { $height = ($src_h / $src_w) * $width; }
$ext = explode(".", $img);
$ext = $ext['1'];
$dst_im = ImageCreateTrueColor($width,$height);
if ($ext == 'jpg' or $ext == 'jpeg' or $ext == 'JPG' or $ext == 'JPEG') {
$src_im = ImageCreateFromJpeg($img);
}
elseif ($ext == 'gif') {
$src_im = ImageCreateFromGif($img);
}
elseif ($ext == 'png') {
$src_im = ImageCreateFromPng($img);
}
ImageCopyResampled($dst_im,$src_im,0,0,0,0,$width,$height,$src_w,$src_h);
if ($ext == 'jpg' or $ext == 'jpeg' or $ext == 'JPG' or $ext == 'JPEG') {
ImageJpeg($dst_im,$img_dest);
}
elseif ($ext == 'gif') {
ImageGif($dst_im,$img_dest);
}
elseif ($ext == 'png') {
ImagePng($dst_im,$img_dest);
}
ImageDestroy($dst_im);
}
?>$img est l'adresse (locale) de l'image d'origine
$img_dest est l'adresse (locale) de la future vignette
$width est la largeur
$height est la hauteur
si $height pas défini, ou défini à 0, il le définit par rapport à $width afin de garder les proportions
Hors ligne
je vous propose aujourd'hui une seconde version.
cette fois ci, la largeur et hauteur définis seront la largeur et hauteur maximum.
une image plus petite que la hauteur ou largeur définie gardera les memes proportions
function vignette($img, $img_dest, $width=0, $height=0) {
$size = GetImageSize($img);
$src_w = $size[0];
$src_h = $size[1];
if ($width != 0 | $height != 0) {
if ($src_w > $width | $src_h > $height) {
if ($src_w > $src_h && $width != 0) {
//On retrecit la largeur
$height = ceil(($src_h / $src_w) * $width);
} elseif($src_h > $src_w && $height != 0) {
//On retrecit la hauteur
$width = ceil(($src_w / $src_h) * $height);
}
} else {
$width = $src_w;
$height = $src_h;
}
} else {
$width = $src_w;
$height = $src_h;
}
$ext = explode(".", $img);
$ext = $ext['1'];
$dst_im = ImageCreateTrueColor($width,$height);
$trans_color = imagecolorallocate($dst_im, 255, 0, 0);
if (!$dst_im) { return 0; }
if ($ext == 'jpg' or $ext == 'jpeg' or $ext == 'JPG' or $ext == 'JPEG') {
$src_im = ImageCreateFromJpeg($img);
} elseif ($ext == 'gif') {
$src_im = imagecolortransparent($dst_im, $trans_color);
$src_im = ImageCreateFromGif($img);
} elseif ($ext == 'png') {
$src_im = ImageCreateFromPng($img);
} else { return 0; }
if (!$src_im) { return 0; }
ImageCopyResampled($dst_im,$src_im,0,0,0,0,$width,$height,$src_w,$src_h);
if ($ext == 'jpg' or $ext == 'jpeg' or $ext == 'JPG' or $ext == 'JPEG') {
ImageJpeg($dst_im,$img_dest);
} elseif ($ext == 'gif') {
ImageGif($dst_im,$img_dest);
} elseif ($ext == 'png') {
ImagePng($dst_im,$img_dest);
} else { return 0; }
ImageDestroy($dst_im);
return 1;
}Hors ligne