8791 sujets

Développement web côté serveur, CMS

Bonsoir !

Voila, j'ai codé une classe image pour redimensionner des images et en faire des miniatures.

J'ai choisi l'option : on crée la miniature, on l'enregistre dans le dossier /thumbs, on affiche l'image nouvellement créée avec la balise <img>

Mais en parcourant les scripts d'autres personnes, pour comparer, je vois que la méthode la plus utilisée est la création de miniatures à la volée...

Cette méthode, je l'avais exclue sans même y penser, me disant que les ressources seraient trop couteuses si je devais créer une galerie à la volée pour chaque visiteur du site... Mais du coup je suis perplexe Smiley ohwell

D'après vous, la solution : "création de miniatures en dur sur le FTP" est meilleure que la solution "création de miniatures à la volée" ou l'inverse ?

Je précise que dans mon cas, les miniatures ne sont pas appelées à se mettre à jour (l'image pointée devrait rester toujours la même...)

Merci braves gens ! J'vais me pieuter, à bientot Smiley smile

#EDIT : J'en profite pour signaler que je ne peux pas m'inscrire sur le forum Alsacreations (je squatte ce compte ^_^ merci Near), car la vérification de l'adresse mail rejette le ' + '... ^_^ C'est balot
Modifié par Near (01 Dec 2008 - 18:06)
Salut,

Near a écrit :

Cette méthode, je l'avais exclue sans même y penser, me disant que les ressources seraient trop couteuses si je devais créer une galerie à la volée pour chaque visiteur du site... Mais du coup je suis perplexe Smiley ohwell
Eh bien comme tu le dis il est moins couteux en ressources de créer la miniature une bonne fois pour toute au moment de l'upload de l'image... Personnellement c'est en tous cas cette méthode que je choisirais. Smiley murf

PS : pour ton email qui ne passe pas je me renseigne...
Merci !

Allez, dans la foulée, une autre question :

Je dois créer une image en mémoire pour pouvoir travailler dessus et ensuite l'enregistrer. Pour cela j'utilise un switch qui détecte le type_mime de mon image et qui lance une des fonctions suivantes en fonction :

imagecreatefromjpeg()
imagecreatefrompng()
imagecreatefromgif()


J'aimerais bien trouver une fonction qui fonctionne dans tous les cas de mime_type. du style imagecreatefromall() (je viens de l'inventer).

Je me dis qu'on peut regénérer une image à partir d'une chaine codée en 64 bits de la façon suivante :

$image = imagecreatefromstring(file_get_contents($url))


Mais est-ce bien catholique ? Est-ce qu'un éléPHPant va venir chez moi me piétiner et me crever mes pneus ? Et surtout, est ce que d'un point de vue performances, c'est nul ?

PS: Heyoan, tu as un détecteurs de posts quand je suis la ? Tu veux m'épouser ? T'es mon héros ^_^
La miniature peut être effectivement créer au moment de l'upload ou bien au moment de sa première visualisation mais mise dans un cache images. De cette façon tu peux créer autant de miniature que tu veux selon tes besoins. Par exemple ton original s'appelle image.jpg, si tu as besoin d'une miniature de 200px tu crées reduced/image-200-200.jpg. A chaque appel de cette image tu vérifies si celle ci existe déjà, sinon tu l'as crée.

Pour ton histoire de type mime il faut déjà vérifier que ton image et un bien fichier image ensuite tu peux faire :

$img_info = getimagesize($src);
switch ($img_info){
   case 1: $resource = imagecreatefromgif($src); break;
   case 2: $resource = imagecreatefromjpeg($src);  break;
   case 3: $resource = imagecreatefrompng($src); break;
}

qui va créer une ressource au bon format selon ton extension.
Hello matmat !

Je n'ai pas été clair pour ma dernière question... Je recommence :

$img_info = getimagesize($src);
switch ($img_info){
   case 1: $resource = imagecreatefromgif($src); break;
   case 2: $resource = imagecreatefromjpeg($src);  break;
   case 3: $resource = imagecreatefrompng($src); break;
}


Est le code que j'utilise déjà pour créer mes ressources (ce qui me limite à utiliser ce 3 formats de fichiers)

Mais j'aimerais bien trouver un code (en 1 ligne ? Smiley langue ) qui détermine tout seul le format et qui crée automatiquement la bonne ressource.

Par exemple, remplacer le code ci dessus par ça :
$ressource = imagecreatefromGIForPNGorJPEGorELSE($src);


De plus, ça permettrait d'être compatible avec d'autres formats de fichiers (même si en principe, les BMP sont mal vus sur le web, les TIF sont trop lourds etc... Faut reconnaitre qu'ils existent...)
Modifié par Near (01 Dec 2008 - 14:44)