IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Performances des composants d'affichage d'images


Sujet :

Lazarus Pascal

  1. #1
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut Performances des composants d'affichage d'images
    Bonsoir,

    Je viens de terminer un petit outil qui m'affiche les .jpg d'un dossier sous forme de petites images provenant des thumbnails incluses dans les données Exif.
    Mais les .jpg n'ayant pas toujours de thumbnail, en cas d'absence je me suis inspiré de l'exemple trouvé dans /usr/share/lazarus/1.0.10/examples/jpeg, dont le cœur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
      try
        //--------------------------------------------------------------------------
        // Create a TJPEGImage and load the file, then copy it to the TImage.
        // A TJPEGImage can only load jpeg images.
        JPEG:=TJPEGImage.Create;
        try
          JPEG.LoadFromFile(OpenPictureDialog1.Filename);
          // copy jpeg content to a TImage
          Image1.Picture.Assign(JPEG);
        finally
          JPEG.Free;
        end;
        //--------------------------------------------------------------------------
        UpdateInfo(OpenPictureDialog1.Filename);
      except
        on E: Exception do 
          MessageDlg('Error','Error: '+E.Message,mtError,[mbOk],0);
      end;
    pour charger l'image et l'assigner à un TImage dynamiquement créé avec des dimensions précises et son Strech à True.

    Tout ça fonctionne bien, mais ce qui est curieux c'est la lenteur d'affichage.

    Procédure de test : je lance une instance de mon outil pointant sur un dossier où les images (11) sont récentes, pèsent + ou - pareil (environ 4 Mo) et ont une thumbnail disponible qui est récupérée par dEXIF.pas pour affichage dans TImage.
    Puis je lance une autre instance sur un autre dossier de 11 images également (entre 1 Mo et 300 ko), où beaucoup de thumb's sont absentes et seront donc calculées comme décrit précédemment.
    Ensuite je passe de l'une à l'autre par ALT-TAB et je constate que l'affichage de l'instance avec les 11 vraies vignettes est quasi instantané alors que l'autre met plus d'une grosse seconde !
    Pourquoi ?
    Idem au redimensionnement de la fenêtre (qui va faire bouger des panels [portant un TImage] dans une scrollbox) : ça fige c'est une horreur.
    Mais aucun problème lors du déplacement de l'outil à la souris.

    Un idée du pourquoi du comment ?
    Pas le bon composant ? J'ai jeté un œil à l'exemple imgviewer à base de TImage lui aussi, et qui est un peu une abomination et termes de perf's sur des grosses images
    Que choisir d'autre ?

    Merci,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Fausse alerte ?

    J'ai trouvé une routine dans un outil pour créer des fichiers-vignette à partir de fichiers-image qui utilise un TBitmap intermédiaire entre le TJPEGImage utilisé en source et le TImage pour l'affichage, ma foi, ça règle ces problèmes de lenteur.

    Maintenant, il y a peut-être encore mieux, j'attends vos avis et commentaires.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/06/2008, 12h32
  2. Réponses: 7
    Dernier message: 17/05/2007, 17h03
  3. [Kylix] Affichage des composants
    Par Tux74 dans le forum EDI
    Réponses: 5
    Dernier message: 20/02/2006, 10h13
  4. [Swing][ListCellRenderer]Pas d'affichage des composants
    Par Cyberwan dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 08/02/2006, 00h22
  5. gestion de l'affichage des composants
    Par Foub dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 25/08/2005, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo