Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

digimic
2006-02-04 13:11:33

rvelices a écrit:

J'utilise aussi les sites distants et j'ai eu le meme probleme.
Dans picture.php, chercher
    // FIXME : with remote pictures, this "remote fopen" takes long...
    if ($i == 'current')
    {
      if (@fopen($cat_directory.'/pwg_high/'.$row['file'], 'r'))
      {
        $picture[$i]['high'] = $cat_directory.'/pwg_high/'.$row['file'];
      }
    }

et commenter le code ci-dessus:
/*    if ($i == 'current')
    {
      if (@fopen($cat_directory.'/pwg_high/'.$row['file'], 'r'))
      {
        $picture[$i]['high'] = $cat_directory.'/pwg_high/'.$row['file'];
      }
    }*/.

j'ai appliqué cela , ca va en effet pus vite pour afficher les images taille monyenne mais les vignettes mettent toujours autant de temps à toutes s'afficher...

plg
2006-02-04 09:55:32

digimic a écrit:

la solution est donc choisie mais cela sera pour la verison 1.6 ? pas avant?

solution trop impactante pour arriver avant la branche 1.6

digimic
2006-02-04 03:41:48

la solution est donc choisie mais cela sera pour la verison 1.6 ? pas avant?

VDigital
2006-01-31 19:10:32

z0rglub a écrit:

rvelices a écrit:

Alors vous preferez quoi ?

solution 2.

Cela signifie que je vais moi aussi faire une croix sur fournir les dimensions de l'image haute résolution dans Web Service...
N'est-ce pas? Dommage... Je vais supprimer les hrwidth= et les hrheight=... 8-/

plg
2006-01-31 09:52:32

rvelices a écrit:

Alors vous preferez quoi ?

solution 2.

VDigital
2006-01-31 07:03:18

Dans service web, c'est

Code:

$hrsize = @getimagesize($high);
if ($hrsize[0]>0)
{
   ....

FIXED !!!

rvelices
2006-01-31 06:58:59

VDigital a écrit:

C'est vrai pour les URL (et ça marche chez moi car je suis en 5 sur le test distant, ou en 4.3 sur des tests mais purement locaux).
Mais alors, avec getimagesize(), on devrait sans sortir à peu de frais, je n'ai pas vu de restriction.

Aiee, je n'avais vu l'appel a imagesize -> 3 solutions possibles
1. on synchronize la taille de l'image high -> 2 colonnes int de plus dans la table images (ca devient lourd d'apres moi)
2. on synchronize seulement true,false et ensuite on rennonce a getimagesize -> on dimensionne pas la nouvelle fenetre ouverte quand on clique sur la photo
3. on synchronize seulement true,false et ensuite on appele getimagesize qui sera lent (mais seulement si pwg_high existe)

Alors vous preferez quoi ?

VDigital
2006-01-31 00:13:51

C'est vrai pour les URL (et ça marche chez moi car je suis en 5 sur le test distant, ou en 4.3 sur des tests mais purement locaux).
Mais alors, avec getimagesize(), on devrait sans sortir à peu de frais, je n'ai pas vu de restriction.

rvelices
2006-01-30 23:02:55

VDigital a écrit:

J'utilise is_file() au lieu de @fopen().

N'ayant toujours pas compris pourquoi on fait un fopen sur une image...
Il me semble normal que PHP réponde mal sur le FOPEN distant (mieux en local et encore is_file serait plus performant).
Par contre is_file() ne chargera pas le fichier pour autant et est forcément rapide.
Et à quelque chose près getimagesize() fera de même.
Est-ce que je passe à coté de quelque chose?

PS: Pour info, il y a d'autres fopen() qui trainent dans le code, certains justifiés d'autres pas du tout.
Je n'ouvre pas de bug, je pourrais me tromper.

La fonction is_file marche avec les URL a partir de PHP 5.0 et pas avant. Donc pour le moment et pour la meilleure compatibilite il vaut mieux ajouter une colonne a la table images. Je me suis assigne le bug 82 pour une release 1.6

VDigital
2006-01-30 22:31:31

rvelices a écrit:

J'utilise aussi les sites distants et j'ai eu le meme probleme.
Dans picture.php, chercher
    // FIXME : with remote pictures, this "remote fopen" takes long...
    if ($i == 'current')
    {
      if (@fopen($cat_directory.'/pwg_high/'.$row['file'], 'r'))
      {
        $picture[$i]['high'] = $cat_directory.'/pwg_high/'.$row['file'];
      }
    }

et commenter le code ci-dessus:
/*    if ($i == 'current')
    {
      if (@fopen($cat_directory.'/pwg_high/'.$row['file'], 'r'))
      {
        $picture[$i]['high'] = $cat_directory.'/pwg_high/'.$row['file'];
      }
    }*/


tu n'auras plus la possibilite de telecharger les photos en haute resolution (si t'as des sous repertoires pwg_high), mais ca devient plus rapide.

J'ai pris le message de rvelices pour exemple et re-situer le pb...
Evidemment je rencontre le même problème dans service web, c'était couru d'avance.

Je contourne le pb par quelque chose de très proche de ceci:

Code:

      if (is_file($cat_directory.'/pwg_high/'.$row['file']))
      {
        $picture[$i]['high'] = $cat_directory.'/pwg_high/'.$row['file'];
      }

J'utilise is_file() au lieu de @fopen().

N'ayant toujours pas compris pourquoi on fait un fopen sur une image...
Il me semble normal que PHP réponde mal sur le FOPEN distant (mieux en local et encore is_file serait plus performant).
Par contre is_file() ne chargera pas le fichier pour autant et est forcément rapide.
Et à quelque chose près getimagesize() fera de même.
Est-ce que je passe à coté de quelque chose?

PS: Pour info, il y a d'autres fopen() qui trainent dans le code, certains justifiés d'autres pas du tout.
Je n'ouvre pas de bug, je pourrais me tromper.

plg
2006-01-14 00:04:10

VDigital a écrit:

Il suffirait donc d'ajouter une colonne 'cette photo a une image haute qualité' True/False.
On éviterait de vérifier la présence de l'image haute qualité.

C'est une bonne idée. D'ailleurs, c'est déjà dans le bugtracker : bug 82. Le seul contre argument, c'est la surcharge induite lors de la synchronisation. Pour l'augmentation du volume de stockage, c'est négligeable un champ enum('true','false').

VDigital
2006-01-13 18:45:40

Il devrait y en avoir dès que z0rglub aura lu mon post précédent, je pense... 8;-)
Je ne lui ouvre pas le bug pour autant à lui, c'est à lui de voir.

digimic
2006-01-13 10:32:11

y a t-il du nouveau à ce sujet?

vimages
2006-01-06 08:42:43

ça me semble une bonne idée..... pour le gain de temps de calcul à l'affichage....
mais la table image est déja chargée, est ce que ça joue aussi ?

eric.

VDigital
2006-01-06 07:51:06

VDigital a écrit:

z0rglub a écrit:

La base de données ne contient pas l'information "telle photo a une image haute qualité". Il faut donc que PWG, à chaque affichage de picture.php, vérifie la présence de l'image haute qualité. Si PWG vérifie à distance, c'est long.

Oui... Je me coucherai moins...

Excellent, si je te trouve un palliatif, tu me dis quoi...

Est-ce que je peux dire une petite "crétinerie"?
Il suffirait donc d'ajouter une colonne 'cette photo a une image haute qualité' True/False.
On éviterait de vérifier la présence de l'image haute qualité.
Il suffit que create_listing_file.php et update.php positionnent l'indicateur localement.
Remote_site.php n'ayant plus qu'à reprendre l'indicateur fourni dans le listing.
A deux ou trois détails près on contourne la lenteur de "remote fopen", puisque tous les tests d'existance deviennent locaux...
Ai-je dit une petite "crétinerie"?

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact