[PHP, MySQL] votre avis concernant la gestion des images

votre avis concernant la gestion des images [PHP, MySQL] - PHP - Programmation

Marsh Posté le 26-02-2003 à 19:17:05    

Voila c'est tres simple, j'ai une appli de vente online avec des produits et une image associee a chaque produit. Je voudrais afficher une version reduite de cette image lorsque l'utilisateur demande la liste des produits dispo. Pour l'instant je stocke mes images ds la BD, une seule image de taille moyenne, et j'utilise l'attribut  width du tag img pour la retrecir. Ca marche comme ca mais je me demande si c'est la meilleure solution (la qualite de l'image reduite est pas geniale et les images a charger sont plus lourdes). En fait je voudrais savoir ce qu'il vaut mieux faire dans ce cas :  
 
- stocker 2 images, 2 tailles differentes
- stocker 1 image et faire comme je fais
- autre idee ?
 
EDIT : au fait : c'est une bonne idee de stocker les images ds la BD ?


Message édité par impulse le 26-02-2003 à 19:17:56
Reply

Marsh Posté le 26-02-2003 à 19:17:05   

Reply

Marsh Posté le 26-02-2003 à 20:20:15    

Le mieux (et de loin), c'est de générer une miniature avec GD (incluse dans PHP).
 

Reply

Marsh Posté le 26-02-2003 à 20:42:45    

la librairie gd c certainement ce qu'il y a de mieux pour la qualité des images
mais c beaucoup moins bien niveaux performance, ça prend beaucoup de ressources

Reply

Marsh Posté le 26-02-2003 à 21:08:52    

Oui, mais c pas grave étant donné que les images ne sont générées qu'une seule fois ;)

Reply

Marsh Posté le 26-02-2003 à 21:14:26    

Citation :

Le mieux (et de loin), c'est de générer une miniature avec GD (incluse dans PHP).

 
 
C'est pas mieux d'avoir 2 versions de ton image ?
Je demande ca car y'a pas mal de sites qui font comme ca, doit bien y avoir une raison... :D
 
EDIT : en fait si tu pouvais expliquer pourquoi GD est la meilleure solution... je veux bien te croire mais si t'avais des arguments ce serait encore mieux ;)


Message édité par impulse le 26-02-2003 à 21:21:10
Reply

Marsh Posté le 26-02-2003 à 21:55:00    

Hermes le Messager a écrit :

Oui, mais c pas grave étant donné que les images ne sont générées qu'une seule fois ;)
 


 
ah bon, et pourquoi seraient-elles générées qu'une seule fois ?
 
 
impluse,
de toute façon gd c principalement utilisé pour générer des graphes, la meilleure solution pour toi serait en effet d'utiliser deux images

Reply

Marsh Posté le 26-02-2003 à 22:06:21    

Citation :

impluse,
de toute façon gd c principalement utilisé pour générer des graphes, la meilleure solution pour toi serait en effet d'utiliser deux images

 
 
ok.
Et sinon vaut mieux stocker les images ds la BD (blob) ou alors tout mettre dans un rep ("images" par exemple) et stocker le nom du fichier ds la BD ou bien ne rien stocker du tt ds la BD ?

Reply

Marsh Posté le 26-02-2003 à 22:30:50    

tout mettre dans un rep ("images" par exemple) et stocker le nom du fichier ds la BD ou bien ne rien stocker du tt ds la BD

Reply

Marsh Posté le 26-02-2003 à 23:03:45    

Citation :

tout mettre dans un rep ("images" par exemple) et stocker le nom du fichier ds la BD ou bien ne rien stocker du tt ds la BD

 
 
Pourquoi ?
Je veux des arguments! :D
 
EDIT : non serieusement, j'aimerais bien connaitre les raisons (plus pratique etc...)...


Message édité par impulse le 26-02-2003 à 23:05:07
Reply

Marsh Posté le 26-02-2003 à 23:28:12    

je vais un peu poursuivre sur ce qui a été dit jusqu'à maintenant.
 
 1. utiliser GD pour générer les miniatures 1 seule et unique fois est une bonne solution mais pas la solution optimale, loin de là. En effet, GD ne permet de créer des images de bonne qualité et cela consomme pas mal de ressources sur le serveur hébergeant le site pour une fonction qui n'est pas la sienne. Le mieux est de créer toi même les miniatures sur ton ordi perso et de les uploader sur ton site ensuite.
 
 2. stocker les image directement dans la signature est une très mauvaise idée. En effet,à chaque fois qu'un visiteur voudra voir une page avec 20 miniatures, je te raconte pas la quantité d'infos qui doit circuler entre le serveur Web et le serveur MYSQL. Tu vas de plus te retrouver avec une base de données gigantesque et ça risque de ralentir l'ensemble des requêtes faites sur ta base de données. En contrepartie, stocker les images directement dans la base permet plus de sécurité : on te volera plus difficilement tes images si ton script est bien fait.
 
 3. PhpWebGallery est une application permettant justement de gérer un site d'image. C'est tout automatisé et assez simple d'utilisation. Là c'était de la pub perso. Mais je gagne rien là-dessus, c'est du logiciel libre, sous GPL. http://www.z0rglub.com/phpwebgallery


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 26-02-2003 à 23:28:12   

Reply

Marsh Posté le 26-02-2003 à 23:47:51    

captain_planet a écrit :


 
ah bon, et pourquoi seraient-elles générées qu'une seule fois ?
 
 
impluse,
de toute façon gd c principalement utilisé pour générer des graphes, la meilleure solution pour toi serait en effet d'utiliser deux images


 
Parce que si tu es intelligent, tu fais ce qu'on appelle une "banque d'image". C'est à dire que chaque fois que tu upload une image sur le site, sa miniature se crée à ce moment là une fois pour toute. :)  
C'est ce système que j'utilise quand je fais une gallerie d'image.

Reply

Marsh Posté le 26-02-2003 à 23:52:52    

z0rglub a écrit :

En contrepartie, stocker les images directement dans la base permet plus de sécurité : on te volera plus difficilement tes images si ton script est bien fait.


 
heu je vois pas pourquoi... :??:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-02-2003 à 23:56:49    

antp a écrit :


 
heu je vois pas pourquoi... :??:


parce que pour c'est plus simple pour un hacker de trouver des images dans un répertoire que dans une base de données (Si ton script PHP n'est pas une passoire bien sûr)


Message édité par z0rglub le 26-02-2003 à 23:57:03

---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 27-02-2003 à 00:00:10    

bhen y a tj une url (genre affimage.php?id=25453) qui va te rendre l'image, je vois pas ce que ça change entre un dossier et des url de ce genre, à moins que tu laisse ton dossier listable évidemment, mais bon y a peu de monde qui fait ça :D
Donc dans les deux cas à moins de connaître l'url de chaque image on sait pas les récupérer plus facilement dans un cas que dans l'autre...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 27-02-2003 à 00:14:39    

antp a écrit :

bhen y a tj une url (genre affimage.php?id=25453) qui va te rendre l'image, je vois pas ce que ça change entre un dossier et des url de ce genre, à moins que tu laisse ton dossier listable évidemment, mais bon y a peu de monde qui fait ça :D
Donc dans les deux cas à moins de connaître l'url de chaque image on sait pas les récupérer plus facilement dans un cas que dans l'autre...


ouais, ok, ton point de vue se défend. De toute façon, je suis contre l'utilisation de la BD pour stocker les images. C'est pas fait pour. Maintenant parfois c'est utilisé (notamment pour de sites professionnels qui préfèrent tout stocker en base de données, comme j'ai pu le voir lors de mon dernier stage) pour permettre une migration plus simple : on ne migre que la base de données et pas des répertoires d'images etc.


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 27-02-2003 à 00:45:14    

Hermes le Messager a écrit :


 
Parce que si tu es intelligent, tu fais ce qu'on appelle une "banque d'image". C'est à dire que chaque fois que tu upload une image sur le site, sa miniature se crée à ce moment là une fois pour toute. :)  
C'est ce système que j'utilise quand je fais une gallerie d'image.
 


 
donc tu es intelligent c'est ça ? :ouch:  
 :lol:

Reply

Marsh Posté le 27-02-2003 à 01:04:19    

captain_planet a écrit :


 
donc tu es intelligent c'est ça ? :ouch:  
 :lol:  


 
En tout cas, plus que les gens incapables de comprendre le secnd degré d'une phrase  :ange:  
 
 [:totozzz]

Reply

Marsh Posté le 27-02-2003 à 01:08:28    

z0rglub a écrit :


 ouais, ok, ton point de vue se défend. De toute façon, je suis contre l'utilisation de la BD pour stocker les images. C'est pas fait pour. Maintenant parfois c'est utilisé (notamment pour de sites professionnels qui préfèrent tout stocker en base de données, comme j'ai pu le voir lors de mon dernier stage) pour permettre une migration plus simple : on ne migre que la base de données et pas des répertoires d'images etc.

bah non il a raison c'est tout :D
et le coup de la migration plus simple ça me fait rigoler, tu le diras à ton maitre de stage de ma part :D

Reply

Marsh Posté le 27-02-2003 à 01:42:16    

Hermes le Messager a écrit :


 
En tout cas, plus que les gens incapables de comprendre le secnd degré d'une phrase  :ange:  
 
 [:totozzz]  


 
 :D le second degré, ça va loin ça !
 
expliques-moi donc le second degré de ta phrase  :p

Reply

Marsh Posté le 27-02-2003 à 02:33:16    

Ok merci pour ces details.
Bon ben je vais refaire mes tables moi... :sweat:

Reply

Marsh Posté le 27-02-2003 à 02:46:16    

Au fait Zorglub > elle a l'air sympa ton appli mais c'est pas ce que je recherche. ;)
Je fais un site de vente online (projet fac). Si j'ai besoin de faire une galerie d'image un jour je saurais ou chercher. :D

Reply

Marsh Posté le 27-02-2003 à 08:35:10    

the real moins moins a écrit :

bah non il a raison c'est tout :D
et le coup de la migration plus simple ça me fait rigoler, tu le diras à ton maitre de stage de ma part :D


 
Ouais, ct ironique mon "ton point de vue se défend", j'aurai dû rajouter un smiley. Il a complètement raison en fait  :D  
 
Sinon, pour le coup de la migration dans la boîte où j'étais avant, j'étais aussi très étonné de voir qu'il préfèraient tout mettre en base de données, documents PDF, Microsoft Word ou images. Mais c'est certainement pas moi qui pouvait prendre la décision. Si ça avait été le cas, je n'aurai pas fait ainsi.

Reply

Marsh Posté le 27-02-2003 à 12:47:03    

z0rglub a écrit :


 
Ouais, ct ironique mon "ton point de vue se défend", j'aurai dû rajouter un smiley. Il a complètement raison en fait  :D  
 
Sinon, pour le coup de la migration dans la boîte où j'étais avant, j'étais aussi très étonné de voir qu'il préfèraient tout mettre en base de données, documents PDF, Microsoft Word ou images. Mais c'est certainement pas moi qui pouvait prendre la décision. Si ça avait été le cas, je n'aurai pas fait ainsi.

:jap:

Reply

Marsh Posté le 27-02-2003 à 12:53:55    

the real moins moins a écrit :


et le coup de la migration plus simple ça me fait rigoler, tu le diras à ton maitre de stage de ma part :D


Bin euh... pourquoi ? Si l'image est en base, tu peux la choper quelle que soit la config du serveur.
Alors que si tu stockes le chemin vers l'image du genre /home/images/img0456.jpg, lors d'une migration t'as intérêt à ce que les filesystems soient les mêmes si tu veux pas te taper la modif à la main pour toutes tes entrées.
De mon point de vue, les deux opinions se défendent [:spamafote]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 27-02-2003 à 13:16:02    

Taiche a écrit :


Bin euh... pourquoi ? Si l'image est en base, tu peux la choper quelle que soit la config du serveur.
Alors que si tu stockes le chemin vers l'image du genre /home/images/img0456.jpg, lors d'une migration t'as intérêt à ce que les filesystems soient les mêmes si tu veux pas te taper la modif à la main pour toutes tes entrées.
De mon point de vue, les deux opinions se défendent [:spamafote]

ben si c'est fait de maniere pas trop trop conne, les chemins sont stockés en relatif alors bon, un tgz d'un rep et de ses sous-rep, c'est qd meme vite fait  
faudrait quand meme migrer l'appli elle meme, alors [:spamafote]

Reply

Marsh Posté le 27-02-2003 à 13:27:06    

impulse a écrit :


 
- stocker 2 images, 2 tailles differentes
 

Reply

Marsh Posté le 27-02-2003 à 14:30:25    

Taiche a écrit :


Bin euh... pourquoi ? Si l'image est en base, tu peux la choper quelle que soit la config du serveur.
Alors que si tu stockes le chemin vers l'image du genre /home/images/img0456.jpg, lors d'une migration t'as intérêt à ce que les filesystems soient les mêmes si tu veux pas te taper la modif à la main pour toutes tes entrées.
De mon point de vue, les deux opinions se défendent [:spamafote]


Ben une bonne solution, c'est d'avoir un répertoire avec tes images + un script qui met à jour ta BDD en scannant les repertoires.
Si tu change de server, tu relance ta fonction de mise à jour et basta ! ( d'ailleurs c'est comme ça que je fais sur un site perso )


---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
Reply

Marsh Posté le 27-02-2003 à 15:55:07    

Moi je vote quand même pour la solution du script réduit les images et les rentre dans la base...
j'ai fait ca sur mon site, et ca marche très bien:
- Tu scanne le répertoire d'upload
- Tu récupère (via un form) les paramètres de tes images (catégorie, nom que tu veux leur donner, etc...)
- le script tourne une seule fois, te génère les miniatures, déplace les images dans les bons répertoires (cf nom_categorie), et intègre les liens aux images dans la BDD...
certes, ca charge le serveur pendant quelques secondes, mais après, plus de soucis... et ca evite aussi de se taper des miniaturisation sous toshop ou acdsee...
 
voila.

Reply

Marsh Posté le 27-02-2003 à 16:45:05    

Citation :

certes, ca charge le serveur pendant quelques secondes, mais après, plus de soucis... et ca evite aussi de se taper des miniaturisation sous toshop ou acdsee...

 
 
Ouais enfin y'a des outils en ligne de commande pour faire des miniaturisations facilement et rapidement. :D
C'est ce que je vais utiliser, apres je mets toutes mes images ds un rep avec productId_s.jpg (pour les petites) et productId_m.jpg (pour les moyennes) et basta, je stocke rien ds la BD.
 
Merci pour vos remarques.

Reply

Marsh Posté le 27-02-2003 à 16:47:17    

impulse a écrit :

Citation :

certes, ca charge le serveur pendant quelques secondes, mais après, plus de soucis... et ca evite aussi de se taper des miniaturisation sous toshop ou acdsee...

 
 
Ouais enfin y'a des outils en ligne de commande pour faire des miniaturisations facilement et rapidement. :D
C'est ce que je vais utiliser, apres je mets toutes mes images ds un rep avec productId_s.jpg (pour les petites) et productId_m.jpg (pour les moyennes) et basta, je stocke rien ds la BD.
 
Merci pour vos remarques.

pense quand meme a un mecanisme pour verifier que toutes tes images sont bien là;)
(du genre un petit script qui boucle sur les product_id que tu as en base et qui verifie que les images correspondantes existent, etc...)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed