REDIMENSIONNEMENT AUTOMATIQUE D'IMAGES

Signaler
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
bouticheval
Messages postés
1
Date d'inscription
lundi 19 janvier 2009
Statut
Membre
Dernière intervention
18 mars 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42443-redimensionnement-automatique-d-images

bouticheval
Messages postés
1
Date d'inscription
lundi 19 janvier 2009
Statut
Membre
Dernière intervention
18 mars 2009

Salut, merci pour ton code je m'en suis servi pour redimensionner une image, par contre dans l'état actuelle des choses la redimension ne se fait pas selon les limites imposés mais selon le rapport choisi, je l'ai un peu modifié pour qu'il ne dépasse pas les largeur et hauteur max défini. Je suis pas un pro codeur mais en tout cas ça marche, si ça peut servir à quelqu'un :

function redimenssion($img, $w_max, $h_max){

$size_img = getimagesize($img); // Dimensions de l'image de base

$w_img = $size_img[0]; // Largeur de l'image de base
$h_img = $size_img[1]; // Hauteur de l'image de base

if (($w_img<=$w_max)AND($h_img<=$h_max)){
$size_final = array($w_img, $h_img); // Si l'image est plus petite que le max on ne la modifie pas
} else {

$rapport = $h_max / $h_img; // Rapport de reduction

$w_final = ceil($w_img * $rapport); // Largeur miniature arrondie
$h_final = ceil($h_img * $rapport); // Hauteur miniature arrondie

if ($w_final>$w_max){
// si la largeur finale dépasse la largeur max on re-dimensionne
$w_final=$w_max; // On transforme la largeur en largeur max la largeur
$rapportReductionmax=$w_final/$w_max; // On calcul le nouveau rapport
$h_final = ceil($h_img * $rapportReductionmax); // On en déduit la nouvelle hauteur
} else if ($h_final>$h_max) {
// si la hauteur finale dépasse la hauteur max on re-dimensionne
$h_final=$h_max; // On transforme la hauteur en hauteur max la largeur
$rapportReductionmax=$h_final/$h_max; // On calcul le nouveau rapport
$w_final = ceil($w_img * $rapportReductionmax); // On en déduit la nouvelle largeur
}

$size_final = array($w_final, $h_final); // Mise en tableau des dimensions finales
}
return $size_final; // On retourne les dimensions de la miniature sous forme de tableau

}
hugsgiver
Messages postés
7
Date d'inscription
lundi 3 décembre 2007
Statut
Membre
Dernière intervention
17 avril 2008

oui, sa je le sait merci, mais se que je voulait dire, c'est que le calcule qui est fait plus haut pour calculer le bon raport hauteur - largeur est inutile, il suffit par exemple d'écrire juste la hauteur, et le navigateur se garge de calculer la largeur!
cs_bluedemon
Messages postés
41
Date d'inscription
mercredi 21 septembre 2005
Statut
Membre
Dernière intervention
3 novembre 2008

hugsgiver, la taille en octet correspond à la qualité de l'image et à sa taille. Pour avoir une taille plus petite en octet, il faut réduire l'image et sa qualité.
Bien sur qu'il faut utiliser la librairie GD. C'est elle qui te permettra de réduire l'image et sa qualité.
Et l'exemple que tu as donné, tu affiche l'image avec une taille peut être réduite mais que en affichage. Si tu as une image de 1280*1024, tu l'affichera peut être en 200*(ratio) mais le chargement sera très long surtout quand c'est une galerie. Car tu charges l'image en 1280*1024 et non 200*(ratio). D'où l'intérêt de charger l'image dans un poids plus petit.
hugsgiver
Messages postés
7
Date d'inscription
lundi 3 décembre 2007
Statut
Membre
Dernière intervention
17 avril 2008

Moi je pensait trouver une fonctionpour réduire la taille en octet, vous vous compliquez bien la tête, sa c facile se que vous avez fait, il y a plus simple, et la vous êtes sur que le taille n'est pas déformé:


echo "";


moi je vait plutot me pencher sur la librairie gd!