|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
OTP Modérateur

Inscrit le: 16 Déc 2005 Messages: 9641 Localisation: Dans le mat...
|
Posté le : Mar Jan 30, 2007 18:09 Sujet du message: Afficher une image sans respecter sa dimension |
|
|
'soir !
Voilà mon problème du jour :
Je veux afficher une image de 150x150 pixels dans un carré de 100x100.
Si je le fais, c'est moche : effet d'escalier.
Il y a t'il un moyen rusé d'éviter cet effet ? Ou je dois redimensionner en 100x100 les 2500 images concernées ?
Michaël |
|
| |
|
 |
kazhar WRInaute accro

Inscrit le: 09 Jan 2004 Messages: 6074 Localisation: Somewhere only I know
|
Posté le : Mar Jan 30, 2007 18:16 Sujet du message: Afficher une image sans respecter sa dimension |
|
|
Tiens, j'ai ça sous la main :
| Code: |
<?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);
}
?> |
Tu appelle la fonction avec comme arguments :
$img : le chemin vers ton image d'origine
$img_dest : le chemin vers la future image redimensionnée (peut être le même que $img)
$width : la largeur
$height : la hauteur. Si égal à 0, il conserve les proportions. |
|
| |
|
 |
jeroen WRInaute accro

Inscrit le: 30 Aoû 2002 Messages: 2289
|
Posté le : Mar Jan 30, 2007 18:16 Sujet du message: Afficher une image sans respecter sa dimension |
|
|
pas moyen de faire autrement, mais de toutes façon c'est pas terrible d'afficher des images plus petites que leur définition. Avec certains Soft (comme PhotoFiltre par exemple), tu peux automatiser des taches de traitement d'images.  |
|
| |
|
 |
jeroen WRInaute accro

Inscrit le: 30 Aoû 2002 Messages: 2289
|
Posté le : Mar Jan 30, 2007 18:20 Sujet du message: Afficher une image sans respecter sa dimension |
|
|
@kazar : j'estpère que tu ne lui conseille pas d'utiliser cette fonction à chaque affichage ? Tu va lui tuer son serveur...
En plus je te conseille vraiment de faire la réduction manuellement car tu peux accentuer le résultat, ce qui donne un rendu beaucoup plus propre qu'avec la fonction ImageCopyResampled de php |
|
| |
|
 |
OTP Modérateur

Inscrit le: 16 Déc 2005 Messages: 9641 Localisation: Dans le mat...
|
Posté le : Mar Jan 30, 2007 18:45 Sujet du message: Afficher une image sans respecter sa dimension |
|
|
| L'image sera présente en home page. Donc le script serait executé à chaque visiteur. Excessif ? |
|
| |
|
 |
kazhar WRInaute accro

Inscrit le: 09 Jan 2004 Messages: 6074 Localisation: Somewhere only I know
|
Posté le : Mar Jan 30, 2007 19:01 Sujet du message: Afficher une image sans respecter sa dimension |
|
|
La fonction enregistre l'image réduite dans un autre fichier. Elle ne l'affiche pas.
Donc non, tu ne l'éxecute pas à chaque affichage, mais une seule fois, pour réduire toutes tes images en une seule fois. |
|
| |
|
 |
OTP Modérateur

Inscrit le: 16 Déc 2005 Messages: 9641 Localisation: Dans le mat...
|
Posté le : Mar Jan 30, 2007 19:03 Sujet du message: Afficher une image sans respecter sa dimension |
|
|
| kazhar a écrit: |
La fonction enregistre l'image réduite dans un autre fichier. Elle ne l'affiche pas.
Donc non, tu ne l'éxecute pas à chaque affichage, mais une seule fois, pour réduire toutes tes images en une seule fois. |
J'ai oublié de dire que c'est pour afficher une image aléatoire en homepage. Le calcul sera donc fait à chaque affichage. Et à terme, j'aurais 2500 icones créées ? |
|
| |
|
 |
kazhar WRInaute accro

Inscrit le: 09 Jan 2004 Messages: 6074 Localisation: Somewhere only I know
|
Posté le : Mar Jan 30, 2007 19:07 Sujet du message: Afficher une image sans respecter sa dimension |
|
|
Non. Il est mieux, je pense, que tu execute le script en plusieurs fois, afin qu'il te réduise tes images une bonne fois pour toutes.
Et tu fait appel uniquement à tes images réduites. |
|
| |
|
 |
OTP Modérateur

Inscrit le: 16 Déc 2005 Messages: 9641 Localisation: Dans le mat...
|
Posté le : Mar Jan 30, 2007 19:12 Sujet du message: Afficher une image sans respecter sa dimension |
|
|
| kazhar a écrit: |
Non. Il est mieux, je pense, que tu execute le script en plusieurs fois, afin qu'il te réduise tes images une bonne fois pour toutes.
Et tu fait appel uniquement à tes images réduites. |
Ok.
Dans ce cas là, je crois que je vais utiliser directement le Powertoys ResizePictures. Merci. |
|
| |
|
 |
jeroen WRInaute accro

Inscrit le: 30 Aoû 2002 Messages: 2289
|
Posté le : Mar Jan 30, 2007 19:30 Sujet du message: Afficher une image sans respecter sa dimension |
|
|
| Onthisplanet a écrit: |
Ok.
Dans ce cas là, je crois que je vais utiliser directement le Powertoys ResizePictures. Merci. |
C'était exactement le sens de ma remarque  |
|
| |
|
 |
OTP Modérateur

Inscrit le: 16 Déc 2005 Messages: 9641 Localisation: Dans le mat...
|
Posté le : Mar Jan 30, 2007 19:32 Sujet du message: Afficher une image sans respecter sa dimension |
|
|
| jeroen a écrit: |
| Onthisplanet a écrit: |
Ok.
Dans ce cas là, je crois que je vais utiliser directement le Powertoys ResizePictures. Merci. |
C'était exactement le sens de ma remarque  |
Bon, je suis convaincu, je ferai ainsi. |
|
| |
|
 |
| |
|
|