Empécher les images trop larges/hautes

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


Julia41
WRInaute impliqué
WRInaute impliqué
 
Messages: 468
Inscription: Ven Aoû 31, 2007 21:17

Empécher les images trop larges/hautes

Message le Sam Mai 10, 2008 19:52

Voilà, j'ai un petit site qui permet de poster des messages/textes/présentation en BBCode (ce n'est pas un forum mais c'est le même principe)...

Le problème est que certaines personnes postent des images trop larges. Il y aurait-il une fonction simple en html/php pour empêcher ses images d'être affichée, ou alors les redimensionner... J'avais pensé à un système en gd, mais cela va faire beaucoup de codage pour pas forcément grand chose... Donc si quelqu'un a une méthode simple...

Edit OTP : titre en vrac ! ;)


Ron56
WRInaute passionné
WRInaute passionné
 
Messages: 706
Inscription: Dim Nov 20, 2005 20:05

Message le Sam Mai 10, 2008 20:33

Voila un petit script qui redimensionne une photo en gardant les proportion selon une largeur et une longueur maxi :

Code: Tout sélectionner
function vignette($img, $img_dest, $width, $height) {
    $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[count($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;
}


Ron


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Images, Hello, Google Image Labeler



Qui est en ligne

Utilisateurs parcourant ce forum: evanika et 1 invité