Page 1 sur 1

largeur fixe thumbnail

Posté : 27 mars 2008, 16:31
par Invité
Bonjour à tous,
j'utilise actuellement un petit script qui redimensionne des images pour générer des miniatures:
function thumbnail($img,$uploaddir,$thumb_height) 
{ 
	if ($img!="") {
    $src_img = imagecreatefromjpeg($img); 
    $origw     = imagesx($src_img); 
    $origh     = imagesy($src_img); 
    $new_h     = $thumb_height; 
    $diff     = $origh / $new_h; 
     
    $ratio = $origw / $origh; 
     
    $new_w = $new_h * $ratio; 
    $dst_img = imagecreatetruecolor($new_w,$new_h); 
    imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img)); 

    imagejpeg($dst_img, $uploaddir, 100); 
    return true; 
	}
} 

Il fonctionne très bien. Mon problème est qu'il prend la hauteur en paramètres. Toutes les images ont donc la même hauteur.

Je voudrais un redimensionnement qui prenne la largeur en paramètres, pour que toutes les images aient la même largeur.

J'ai tenté de simplement inverser largeur et hauteur dans le script mais ça donne des miniatures très déformées.

Auriez vous une astuce ou un script thumbnail qui prenne la largeur en paramètre?
Merci pour vos réponses.

Posté : 27 mars 2008, 16:56
par Ryle
Il ne faut pas inverser hauteur et largeur partout sans se poser de question.. il te faut calculer la nouvelle hauteur à partir de la largeur du thumb, au lieu de calculer la nouvelle largeur à partir de la hauteur du thumb :)

Posté : 27 mars 2008, 17:33
par h0_noMan
Le mieux est de créer une image qui respecte le ratio L/H

Tu pourrais très bien mettre cette image sur une fond noir qui aura toujours la même taille.

Après, suivant tes images, tu auras :
- Des images avec des bandeaux noirs en haut et en bas (les bandeaux seront horizontaux)
- Des images avec des bandeaux noirs a droite et à gauche (les bandeaux seront verticaux)