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 :

Extraction d'images d'un fichier LRS [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Jlmat
    Homme Profil pro
    Ex Informaticien et Consultant en Ressources Humaines, Retraité
    Inscrit en
    Avril 2008
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ex Informaticien et Consultant en Ressources Humaines, Retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 370
    Par défaut Extraction d'images d'un fichier LRS
    Bonjour à tous

    J'ai besoin de créer un fichier ressources (.lrs) en Lazarus 3.6 pour une collection d'images, mais je me heurte à l'extraction des images.
    J'ai créé une fonction utilisant les Stream pour charger les images dans un Bitmap qui pourra ensuite afficher l'image extraite dans un TImage.
    Mais je n'y arrive pas. voici la dernière notification obtenue:
    Nom : Notification.jpg
Affichages : 125
Taille : 41,3 Ko

    Voici le code de la fonction:
    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
    procedure ChargerImageDepuisLRS(Image: TImage; NomRessource: string);
    var
      Stream: TLazarusResourceStream;
      Bitmap: TBitmap;
    begin
      Stream := TLazarusResourceStream.Create(NomRessource, nil);
      try
        Bitmap := TBitmap.Create;
        try
          Bitmap.LoadFromStream(Stream);
          Image.Picture.Assign(Bitmap);
        finally
          Bitmap.Free;
        end;
      finally
        Stream.Free;
      end;
    end;
    Voici une capture d'écran de l'application au démarrage:
    Nom : Interface.jpg
Affichages : 106
Taille : 210,8 Ko
    J'ai inclue mon Test dans un Zip ExempleLRS.7z pour ceux ou celles qui veulent bien y regarder de plus près. J'ai mis six images au format .bmp .jpg .png pour voir s'il y avait un problème de format.

    Merci pour votre aide.

  2. #2
    Membre éclairé
    Avatar de sematimo
    Profil pro
    Inscrit en
    Février 2009
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 335
    Par défaut
    et en utilisant lrs explorer, as tu le même problème?

  3. #3
    Membre éclairé
    Avatar de sematimo
    Profil pro
    Inscrit en
    Février 2009
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 335
    Par défaut
    J'ai regardé ton code.
    Lorsque tu charges une image depuis le fichier lrs, il faut le nom sans l'extension du fichier.
    Il faut rajouter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     initialization
    {$i images.lrs}
    Avec ton code tu te compliques la vie.
    Voici un code qui fonctionne :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     procedure ListBox1Click(Sender: TObject);
        procedure ChargerImageDepuisLRS(Image: TImage; NomRessource: string);
     
      private
     
      public
     
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.lfm}
     
    procedure TForm1.ChargerImageDepuisLRS(Image: TImage; NomRessource: string);
    begin
           Image.Picture.LoadFromLazarusResource(NomREssource);
    end;
     
    procedure TForm1.ListBox1Click(Sender: TObject);
     var nomfic : string;
    begin
      if ListBox1.ItemIndex >= 0 then
      begin
        nomfic := ListBox1.Items[ListBox1.ItemIndex];
        nomfic:=ChangeFileExt(nomfic,'');
        ChargerImageDepuisLRS(Image7, nomfic);
        ChargerImageDepuisLRS(Image8, nomfic);
      end;
      showmessage('L''image '+ListBox1.Items[ListBox1.ItemIndex]+' a été extraite');
    end;
     
    initialization
    {$i images.lrs}
     
    end.
    Pour créer un fichier lrs, j'utilise lrs explorer.

  4. #4
    Membre éclairé
    Avatar de Jlmat
    Homme Profil pro
    Ex Informaticien et Consultant en Ressources Humaines, Retraité
    Inscrit en
    Avril 2008
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ex Informaticien et Consultant en Ressources Humaines, Retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 370
    Par défaut
    Bonsoir Sematimo, merci pour ta réponse.

    Oui, j'avais vu qu'il existait effectivement cet utilitaire LRS Explorer. Je viens de l'installer pour le tester. Mais je me suis dit qu'avec le script de windows donné par la source de Lazarus, je m'en tirerais.
    De toute façon, dans ma liste Box j'avais mis l'extension pour faire la différence entre les différentes format à afficher, mais j'ai oublié d'enlever cette extension dans l'appel de la fonction d'extraction, ce que tu as corrigé avec nomfic:=ChangeFileExt(nomfic,'');.

    Alors, j'ai essayé rapidement ta solution, elle marche. LRS explorer semble pratique bien que tatillon apparemment pour sauvegarder des modifications à l'intérieur comme les changement de nom des ressources.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraction d'une image dans un fichier ISO
    Par sys2061 dans le forum Linux
    Réponses: 13
    Dernier message: 06/04/2021, 06h46
  2. Extraction d'images à partir d'un fichier texte
    Par gharbimedamine dans le forum Graphisme
    Réponses: 0
    Dernier message: 27/10/2016, 16h42
  3. Extraction morceau image et création fichier bmp
    Par Oelth dans le forum Langage
    Réponses: 1
    Dernier message: 05/05/2010, 09h26
  4. Extraction des données "images" d'un fichier DICOM
    Par FloFox dans le forum Traitement d'images
    Réponses: 7
    Dernier message: 21/06/2007, 10h11

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