OVH Cloud OVH Cloud

Gallerie en PHP

4 réponses
Avatar
Francois Colas
Bonjour,

on vient de me faire parvenir une fonction resize issue d'un code en PHP
qui permet de générer une gallerie photo.
Cette fonction crée des miniatures à partir d'images issue d'un dossier,
mais elle redéfinit la taille des miniatures par rapport à l'originale
ce que je ne veux pas.
Je souhaite que quelque soit la taille de l'image, cette fonction crée
une miniature de 30*30.
Après un bon nombre de tentative je n'ai obtenue que des erreurs, je
m'en remet donc à vos conseils...

Voila la fonction :


function resize($file)
{
$size = getimagesize("photos/$file");
$dest_width = ($size[0]/6);
$dest_eight = ($size[1]/6);

$src_img = imagecreatefromjpeg("photos/$file");
$dst_img = imagecreatetruecolor($dest_width,$dest_eight);

imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width,
$dest_eight, $size[0], $size[1]);
imagejpeg($dst_img, "photos/mini_$file", 30);
imagedestroy($src_img);
imagedestroy($dst_img);
}

Merci d'avance !

4 réponses

Avatar
Olivier Miakinen
Bonjour,


on vient de me faire parvenir une fonction resize issue d'un code en PHP
qui permet de générer une gallerie photo.


<aparté>
Je suis effaré par le nombre de personnes qui parlent d'une « gallerie »
de photos, probablement influencées par le mot « gallery » d'une autre
langue. En français, le mot « gallerie » n'existe pas. Il existe le mot
« galerie », mais pas dans ce sens là. Quand il ne s'agit pas d'un musée
on parle plutôt d'album de photos.
</>

Cette fonction crée des miniatures à partir d'images issue d'un dossier,
mais elle redéfinit la taille des miniatures par rapport à l'originale
ce que je ne veux pas.
Je souhaite que quelque soit la taille de l'image, cette fonction crée
une miniature de 30*30.


Ok.

Après un bon nombre de tentative je n'ai obtenue que des erreurs, je
m'en remet donc à vos conseils...


Il aurait pu être utile de préciser quelles erreurs... entre une image
qui s'affiche dans une autre dimension que celle souhaitée et une erreur
500 du serveur, il y a toute une palette de comportements possibles.

Enfin bon, puisque tu donnes la fonction je vais déjà la commenter.

Voila la fonction :

function resize($file)
{
$size = getimagesize("photos/$file");
$dest_width = ($size[0]/6);
$dest_eight = ($size[1]/6);

$src_img = imagecreatefromjpeg("photos/$file");
$dst_img = imagecreatetruecolor($dest_width,$dest_eight);


Pourquoi créer une image de taille largeur/6 et longueur/6 alors que tu
veux une vignette de dimensions 30 sur 30 ?

J'aurais fait :
$dst_img = imagecreatetruecolor(30, 30);



imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width,
$dest_eight, $size[0], $size[1]);


Idem. Remplacer $dest_width et $dest_eight par 30 et 30.

imagejpeg($dst_img, "photos/mini_$file", 30);


Je rappelle à tout hasard que ce 30 n'a rien à voir avec les dimensions
(ce qui ne veut pas dire qu'il est faux de mettre 30, bien sûr).

imagedestroy($src_img);
imagedestroy($dst_img);
}

Merci d'avance !


J'espère avoir aidé, mais sinon pense à indiquer la prochaine fois quel
message d'erreur tu obtiens.

Avatar
Francois Colas
Problème résolu, il fallait laisser le tableau.
Pour info voila la solution :

function resize($file)
{
$size = getimagesize("photos/$file");
$dest_width = 30;
$dest_eight = 30;

$src_img = imagecreatefromjpeg("photos/$file");
$dst_img = imagecreatetruecolor($dest_width,$dest_eight);

imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width,
$dest_eight, $size[0], $size[1]);
imagejpeg($dst_img, "photos/mini_$file", 30);
imagedestroy($src_img);
imagedestroy($dst_img);
}
Avatar
Francois Colas
En effet, je viens de lire ton message et comme tu dis :

En français, le mot « gallerie » n'existe pas.




Néamoins mise à part cette faute d'orthographe, je ne vois pas vraiment
pas pourquoi on ne pourrait pas parler de "galerie photo", pourtant très
utilisé et pas faux d'après les définitions du dictionnaire.


Il aurait pu être utile de préciser quelles erreurs...


Je n'ai pas précisé les erreurs, parceque j'en ai eu un certain nombre
et que de plus, il me paraissait plus simple de donner une fonction sans
erreurs, qui ne peut que faciliter la tache de celui qui apporte ou
apportera une réponse.
Pour info, mes erreurs venait du fait que je supprimais les éléments du
tableau suivant de ma fonction imagecopyresampled: $size[0], $size[1].


J'espère avoir aidé


J'ai malencontreusement posté un message de réponse avant de lire ton
message mais néamoins ton aide m'a été utile puisque j'ai supprimé comme
tu l'as dis les variables inutiles $dest_eight et $dest_width.


En tout cas je te remercie de m'avoir répondu et éclaircie sur le code
de cet "album photo" ;)



Avatar
Olivier Miakinen

[ « gallerie de photos » pour désigner un album de photos dans
un site internet ]

En français, le mot « gallerie » n'existe pas.


Néamoins mise à part cette faute d'orthographe, je ne vois pas vraiment
pas pourquoi on ne pourrait pas parler de "galerie photo", pourtant très
utilisé et pas faux d'après les définitions du dictionnaire.


Ça dépend peut-être du dictionnaire, mais par exemple avec le TLFi
<http://atilf.atilf.fr/> je trouve que même les définitions les plus
proches restent trop éloignées.

<cit. TLFi>
I. A. 1. Pièce intérieure ou extérieure (d'un appartement, d'un
bâtiment), beaucoup plus longue que large [...]
I. A. 2. a) Salle vaste, beaucoup plus longue que large [...]
I. A. 2. b) Salle où se trouvent réunies des collections [...]
I. A. 3. Passage couvert (réservé à la circulation piétonnière) [...]
I. B. 1. /HIST./ Allée longue et couverte [...]
I. B. 2. a) Balcon en encorbellement [...]
I. B. 2. b) Place (dans une salle de spectacle) [...]
I. C. 1. Accessoire fixé sur le toit d'un véhicule [...]
I. C. 2. a) Ornement en relief [...]
I. C. 2. b) Bande de cuivre ou de bronze [...]
I. C. 2. c) Bordure placée dans le bassin d'un plat [...]
II. A. Passage creusé par l'homme ou certains animaux [...]
II. B. 1. /MINES/ Passage, conduit souterrain [...]
II. B. 2. /GÉNIE MILIT./ Conduit souterrain [...]
</cit.>

En fait, le sens le plus proche semble être celui de « galerie de
peinture » (cf. I. A. 2. b. - Par métonymie) mais même là il s'agit
d'une « réunion d'objets exposés », ce qui pourrait éventuellement
s'appliquer à tes photos si elles étaient exposées chez toi, mais à
mon avis pas à un site web.

Si cela t'intéresse de continuer la discussion sur le sujet, je te
propose de le faire sur <news:fr.lettres.langue.francaise> vers lequel
je positionne le suivi.

--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)