taille d'image pour fonction PHP - PHP - Programmation
Marsh Posté le 01-09-2004 à 13:53:14
quand tu dis "réduite vi a HTML", ça veut dire que tu leur attribut un "width" et/ou un "height" à l'affichage ???
Si c'est le cas, alors les valeurs de ces paramètres tu les met dans des variables (globales par exemple) que tu sera capable d'utiliser ailleurs...
Marsh Posté le 01-09-2004 à 19:04:45
Xav_ a écrit : quand tu dis "réduite vi a HTML", ça veut dire que tu leur attribut un "width" et/ou un "height" à l'affichage ??? |
ben le truc c que je définis un hauteur en pixels, mais j'ai pas défini la largeur du fait que je veux que les proportions soient respectées. et helas ca fait que chaque image a une largeur différente. et c'est la que ca coince car ya une inconnue.
tu aurais une idee?
sinon autre ptit question : des fois je vois des codes du genre:
$variable->autre_variable. ca veut dire koi. ca a un rapport avec le PHP objet?
Marsh Posté le 02-09-2004 à 08:41:35
oué je suis tout afé daccord que c crade de reduire betement en HTML des images qui sont lourdes. paske le pov gars ka pas l'adsl (et yen a encore tout plein) ben ca va le souler de charger des photos en 1600*1200
le systeme nickel ca seré de pouvoir transferer une image via inteface PHP-FTP (pas trop compliqué) et qu'un script genere automatiquement une seconde image en miniature avec 143 de hauteur et x de largeur en proportion
Marsh Posté le 02-09-2004 à 09:27:38
ben c'est des question récurente (pour tes images) en te baladant sur les forum, tu peux trouver des scripts qui font ça très bien... prend la grande image, regarde si la miniture existe dasn un rep de stockage, sinon, ça la créé à la volée, et s'en sert pour l'affichage...
pour la qusetion sur $toto->tata c'est une notion d'objet
par exemple tu va trouver ça après une requete de sélection dans une BDD, tu fait
$row = mysql_fetch_object($res); // avec $res qui contient le résultat de la requete bien sur
et du coup si tu veux récupérer la valeur de la colonne "nom" de ta table (dans la BDD) tu va écrire $nom=$row->nom;
Marsh Posté le 03-09-2004 à 14:17:42
mickael, tes miniatures sont stockées dans un repertoire ou tu les regénère à la volée à chaque fois ???
si c'est la deuxième solution, ton script m'interresse...
Marsh Posté le 03-09-2004 à 14:30:20
C'est très facile de faire ça. C'est aussi très lent.
Regarde cette page de la doc : http://www.php.net/header
Marsh Posté le 03-09-2004 à 15:20:14
je ne charche pas à faire du réaiguillage, en fait j'affiche une dizaine de photos sur une page, je les réduis en affichage avec "width" et/ou "height" mais le client télécharge quand meme les "gros" fichiers --> assez lent
Alors je voudrez une tite fonction qui génère à la volé la miniature pour afficher 10 miniatures au lieu des 10 photos normales (réduite via HTML)...
Mais je veux pas stocker les miniatures sur le serveur (économie de place)...
Je sais pas trop si je suis clair en fait...
Marsh Posté le 03-09-2004 à 15:27:07
Tu as été très clair, mais c'est une méthode qui est assez lente et consome pas mal de ressource système, surtout si tu as un nb conséquent de visites
Marsh Posté le 03-09-2004 à 15:29:22
C'est une simple règle de 3 :
X = x
Y = ?
X Y
- = -
x y
Donc en gros, il me semble que largeur = (LARGEUR * hauteur)/HAUTEUR si je sais encore calculer sans me tromper
C'est pas du php
Marsh Posté le 03-09-2004 à 15:46:48
1/ garder l'affichage des photos normales (réduite via HTML) --> c'est lent coté client (lié à la connexion)
2/ regénerer les miniatures à la volé --> c'est lent aussi et ça bouffe les ressources du serveur)
3/ stocker les miniatures et ne les générer que quand il faut --> rapide et optimisé coté ressource, mais encore un répertoire à gérer et des fichiers à stocker (pb de place)
Moralité: ya toujours des avantages et des inconvénients (c'est la loi de la vie), donc je crois que je vais garder la soluce 1 dont le plus gros des avantages est: "c'est déjà comme ça donc j'ai rien à faire " LOL
Merci quand meme (et par curiosité, j'aimerais quand meme jeter un oeil sur le code de 84mickael...)
Marsh Posté le 04-09-2004 à 02:17:14
84mickael a écrit : Alors moi je génère des miniatures à la volée... |
J'espère que tu n'as pas un hébergement mutualisé
Marsh Posté le 04-09-2004 à 03:09:56
Xav_ a écrit : 1/ garder l'affichage des photos normales (réduite via HTML) --> c'est lent coté client (lié à la connexion) |
Mouais...
Reduire par HTML n'est pas que lourd du côté client, la bande passante, tu la payes d'une manière ou d'une autre. En plus, les navigateurs n'opèrent pas d'interpolation. Les miniatures sont donc pixellisées, donc moches.
Le redimensionnement à la volée est vraiment très lourd (plus l'image est grosse, plus ça l'est). Si ont les stoque, on occupe 5 ko par miniature, mais on économise proportionnellement 100 fois plus les ressources processeur.
Moralité : enregistrez les miniatures (sauf si vous avez des ressources processeur illimitées ) !
Marsh Posté le 06-09-2004 à 09:31:02
ok pour les infos, quand j'aurais une minut je ferais peut etre qques test avec le script de Mickael pour voir le temps d'execution...
Marsh Posté le 11-10-2004 à 14:14:57
Bonjour tout le monde, alors moi je suis très novice en php, et j'ai voulu testé la technique de 84mickael avec le code fournit, mais j'ai un problème qui à mon avis n'a rien à voir avec php mais je sais pas trop... : en fait le code fait comme si le fichier miniatures.php n'existait pas...donc je me retrouve avec une page avec toutes les images miniatures non générées, mais avec les liens correct vers les bonnes images, si quelqu'un peut m'aider çà serait vraiment sympa !!! Merci d'avance...
Marsh Posté le 11-10-2004 à 21:19:36
ben fait j'ai suivi d'assez près le tutoriel (très bien fait en plus) de PHP débutant sur l'utilisation de la librairie GD et la création de miniature.
Mais j'ai opté pour stocker les miniatures plutot que de les regénérer à chaque fois
--> ça m'a pris une heure pour faire un script qui tourne nickel alors que j'avais jamais utilisé aucune de ces fonctions, et les miniatures font de 3 à 5KO, donc ça surcharge pas non plus mon espace.
Marsh Posté le 11-10-2004 à 22:49:12
Ben non je comprend pas, tout à l'air OK. Pour être sûr j'ai refait un copier/coller de ton code, le seul changement c la variable $tab[3] que j'ai adapté à mon cas, mais si les liens sont OK je pas que le souci vienne de là...
Marsh Posté le 12-10-2004 à 08:03:07
84mickael a écrit : J'aurais opté pour ça aussi si j'avais pu (su ?) gérer dynamiquement les miniatures selon si l'on ajoute ou enlève des images des répertoires. |
Ben en fait, je regarde si la miniature correspondant au l'image existe, sinon je la génère au moment de l'affichage, donc dans le cas d'ajout d'image, pas de pb.
Par contre il est vrai que je ne gère pas les suppression, donc si une photo qui était affichée n'existe plus, sa miniature n'est pas détruite et occupe de la place inutile sur le serveur.
Marsh Posté le 13-10-2004 à 13:43:56
Mon pb viendrait pas du fait que j'utilise easyphp des fois ?? J'ai pourtant fait "configuration/extensions php/ et coché php_gd2"...
Marsh Posté le 13-10-2004 à 14:02:47
pas de pb avec easyPHP (j'utilise la version 1,7), c'est avec ça que j'ai mis en place mon script chez moia avant de le mettre en ligne.
Il faut en effet décommenter la ligne:
Code :
|
un phpinfo() te permettra de savoir si les fonctions GD sont active ou pas, comme je t'ai dis le tutoriel du site www.phpdebutant.org est très bien fait et t'explique les pré-requis.
Marsh Posté le 01-09-2004 à 13:50:18
j'ai des images dans une page, dont les dimensions ont été reduites (via HTML) par rapport aux images sources
et ces images sont affichées via une fonction PHP qui permet de leur mettre une ombre portée/
le probleme c que jutilise la fonction getimagesize() et que cette fonction retourne la taille de l'image source.
ce que je voudrais c trouver une fonction qui me donne la taille des images reduites.
toutefois je me demande si c'est posible car les attributs height et width sont interpetés coté client donc ca va peut etre coincer de ce point de vue