Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
J'utilise
<?php list($width, $height, $type, $attr) = getimagesize("#FICHIER"); ?>
pour recuperer la taille de mes images
qui s'ouvriront dans des popups proportionnelle a leur image
lors d'un clic sur leur miniature.
Ces images etant "longues" a se charger lors du clic
je me demandais s'il n'existait pas un "preload" en PHP (comme il existe un getimagesize)qui me permettrait de faire
<?php list($width, $height, $type, $attr) = getimagesize("#FICHIER"); preload("#FICHIER"); ?>
Merci.
Reg3
Dernière modification par reg3 (29-12-2009 11:10:46)
Hors ligne
Pour avoir déjà travailler avec getimagesize j'ai trouvé la fonction super lourde et très longue d'exécution.
C'est une horreur pour une galerie (et ce n'était pas un problème d'hébergeur vu que j'étais en local).
Il existe des façons de redimensionner les images avec du css ou encore du javascript. Cela ne règle cependant pas le temps de chargement de l'image car cela ne modifie en rien son poids. Mais je trouve déjà le fait de ne pas utiliser la fonction PHP beaucoup mieux pour ma part.
Exemple css :
Salut à tous
C'est plus simple en CSS :
Demonstration :
<head>
<style>
.img { width: 200px;}
</style>
</head>
<body>
<img src="test.jpg" class="img">
</body>
De plus si tu veux faire un zoom sur ta photo, tu créé une class (comme .img) qui fait 500px (width: 500px;) et t'as juste à rappeler ta class (class="img") .
C'est beaucoup plus simple, plus facile à modifier, et ça répond aux normes du W3 (w3.org)
Exemple javascript :
http://www.javascriptfr.com/codes/REDIM … 39901.aspx
Hors ligne
Merci xTG,
J'aurais bien voulu remplacer effectivement mes popup par du css,
mais toutes mes images (les grandes) sont de tailles differentes et je n'ai pas su trouver de script css correspondant a mes besoins:
taille ajustable en fonction de la taille de l'image avec un nom recupere dans mon #FICHIER, le tout automatiquement...
Je n'ai pas precise, mais cela a aussi son importance, que ma miniature n'appele pas la meme image agrandie mais une autre.
Ta reponse sous entend qu'il n'existe pas de solution en PHP, si j'ai bien compris...
Dommage.
Reg3
Hors ligne
S'il en existe une correcte je ne la connais pas.
Mais après mes propos sont à prendre à demi-mesure, car de nombreux scripts utilisent cette fonction...
Concernant ton precachage il me semble qu'il est possible de charger au fur et à mesure des images en javascript (sauf si mes souvenirs me jouent des tours).
Cela te permettrai d'afficher la page avant que les images soient chargées.
Hors ligne
Hello,
Je ne suis pas sûr de bien comprendre ton problème.
Tu fais une pop-up dans laquelle tu affiches une image et cette image peut mettre un peu de temps à s'afficher.
Si c'est ça le problème ne peut être résolu en PHP pour la simple et bonne raison que PHP s'exécute coté serveur et non client.
Donc il te faut un langage coté client => Javascript.
Après pour une solution adaptée il me faudrait un peu plus de détails sur ta galerie :
- Combien d'image comporte une page de ta galerie ?
- Est ce que les grandes images liées aux miniatures ont une taille maximale ? si oui laquelle ?
La programmation est composée de 80% de réflexion pour 20% de syntaxe -> réfléchissez à votre problème par étapes
Recommande l'utilisation du pattern Singleton
Si jamais je poste un morceau de code pour vous aider, prenez bien compte que je n'ai pas forcément testé le code que je poste et qu'il est possible qu'il contienne des erreurs
Hors ligne
Bonjour Maskine,
Je ne suis pas sûr de bien comprendre ton problème.
Tu fais une pop-up dans laquelle tu affiches une image et cette image peut mettre un peu de temps à s'afficher.
Si c'est ça le problème ne peut être résolu en PHP pour la simple et bonne raison que PHP s'exécute coté serveur et non client.
Donc il te faut un langage coté client => Javascript
Oui tu as bien saisi
Donc il faut que je passe par du JS...
Après pour une solution adaptée il me faudrait un peu plus de détails sur ta galerie
Sur mes pages j'affiche 6 miniatures (ou moins) qui correspondent a un resultat de recherche.
Exemple (mon site propose des livres) 'Simenon' renverra plusieurs pages de 6 miniatures
un autre auteur moins connu peut etre 2 miniatures
Ces miniatures toutes differentes (pas en taille) ouvriront des popups d'une 2eme image (pas celle des miniatures) qui ont toutes une taille differente recuperee par: <?php list($width, $height, $type, $attr) = getimagesize("#FICHIER"); ?>
En fait je voudrais que mon preload ne charge que les 6 images (ou moins) correspondant a la page affichee et non pas l'ensemble de mes images (#FICHIER)...
Et il faudrait que mes 2eme images soit appelees "de maniere generique" pas par un nom d'image (ex:simenon.jpg ou simenon.png)...
Merci.
Reg3
Hors ligne
Hello,
Ok maintenant je vois bien
Pour commencer, les grandes images, si elles dépassent le Mo il faut que tu les réduisent en taille pour l'affichage (quitte à proposer un lien pour télécharger l'image d'origine) tu gagneras en fluidité quant à l'utilisation de la galerie.
Ensuite, tu peux demander à ton navigateur de les précharger pour toi.
Pour se faire :
<img src='chemin de l'image' style="display: none;" />
Il me semble que le fait de mettre le tag HTML mais de le mettre en display none te permet de précharger l'image. => A vérifier
Enfin pour la pop-up, je te déconseille le bon vieux windows.open().
Oriente toi plus vers des framework JS qui vont s'occuper pour toi de gérer tous les problèmes Cross Browser et en plus qui vont te permettre de mettre en place des fonctionnalité un peu plus sympas.
Je pense notamment à jQuery qui à un plugin de dialog qui te permet des pseudos pop-up :
http://docs.jquery.com/Main_Page
Mais bon, je te propose ça parce que c'est celui que je connais le mieux
Bon courage
La programmation est composée de 80% de réflexion pour 20% de syntaxe -> réfléchissez à votre problème par étapes
Recommande l'utilisation du pattern Singleton
Si jamais je poste un morceau de code pour vous aider, prenez bien compte que je n'ai pas forcément testé le code que je poste et qu'il est possible qu'il contienne des erreurs
Hors ligne
Bonjour Maskine,
Le: style"display:none" fait exactement ce dont j'avais besoin
Pour le lien Jquery, il y a en fait des choses plutot compliquees comme
http://yensdesign.com/2008/09/how-to-cr … ng-jquery/
et 1 tres simple
http://rip747.github.com/popupwindow/
mais qui ne differt que peu me semble t'il d'une popup classique.
A quelle pseudo popup pensais tu?
Merci.
Reg3
Dernière modification par reg3 (01-01-2010 10:46:46)
Hors ligne
Hello,
Je pensais en fait à ça :
http://jqueryui.com/demos/dialog/
Ca te permet de faire un affichage style pop-up, qui n'en n'est pas une => tu n'as pas de blocage navigateur.
La programmation est composée de 80% de réflexion pour 20% de syntaxe -> réfléchissez à votre problème par étapes
Recommande l'utilisation du pattern Singleton
Si jamais je poste un morceau de code pour vous aider, prenez bien compte que je n'ai pas forcément testé le code que je poste et qu'il est possible qu'il contienne des erreurs
Hors ligne
Bonjour Maskine,
Effectivement ca a l'air plutot sympa et personnalisable
mais je n'ai pas l'impression que l'ajustement automatique, en fonction de la taille de mes photos, toutes de tailles differentes, soit possible
Merci.
Reg3
Hors ligne
Pages :: 1