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 :

Récupérer les valeurs en RVB d'un Bitmap


Sujet :

Lazarus Pascal

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Récupérer les valeurs en RVB d'un Bitmap
    Bonjour,

    Dans le cadre d'un projet je cherche à convertir une image Bitmap couleur en Noir et blanc, et stocker les valeurs en RVB dans un tableau.
    Mon professeur m'a donné ce bout de code qui utilise scanline, hors elle ne fonctionne pas sous lazarus... et je ne parvient pas a trouver un équivalent...

    *
    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
    Type
        TRVB=record
           R,V,B:byte;
           end;
     
        Pbitmap=^Tbitmap;
     
        cimage=class
          imageRVB:array[0..Nm1max,0..Nm1max] of TRVB;
          largeur, hauteur :integer;
          constructor create(bmp:Pbitmap);           
     
     
     
    * Constructor Cimage.create(bmp:Pbitmap);
       var i,j:integer;
        p:^byte;
    begin
     
    for i:=0 to bmp^.Height-1 do
        begin
        p:=bmp^.scanline[i];
        for j:=0 to bmp^.width-1 do
            begin
            imagervb[i,j].B:=p[j*3];
            imagervb[i,j].V:=p[j*3+1];
            imagervb[i,j].R:=p[j*3+2];
            end;
         end;
    largeur:=bmp^.width;
    hauteur:=bmp^.height;
    end;
    Merci d'avance!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 64
    Points : 87
    Points
    87
    Par défaut
    Salut

    La méthode scanline ne fonctionne pas avec Lazarus.
    plus d'infos ici:
    http://wiki.lazarus.freepascal.org/D...r_avec_TBitmap

    tu as 2 solutions pour faire ce que tu désire

    1:
    Travailler pixel par pixel sur ton bitmap et récupérer les valeurs rvb à partir de chaque couleur de chaque pixel, mais c'est très lent.

    2:
    Utiliser TLazIntfImage pour travailler de façon similaire à ton exemple:
    a. tu copie ton bitmap en mémoire vive
    b. tu lis / modifie les valeurs rvb en mémoire vive (grâce aux pointeurs)
    c. tu copie le résultat en mémoire vive dans ton bitmap

    La deuxième solution est très rapide mais un peu plus complexe à mettre en place et a utiliser (accès aux valeurs rvb).

    http://www.freepascal.org/docs-html/...intfimage.html

    ci dessous je te mets un lien qui est sans intérêt pour la modification des valeur rvb mais assez utile pour la copie TLazIntfImage <-> TBitmap
    http://is.muni.cz/th/139855/fi_b/laz...line/unit1.pas

    bon courage

Discussions similaires

  1. DBGrid récupérer les valeurs de l'enregistrement courant
    Par bob_sapp dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/09/2014, 07h56
  2. [MySQL] Récupérer les valeurs définies dans un champ ENUM
    Par Huntress dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/07/2010, 18h55
  3. récupérer les valeurs de checkbox
    Par liichiii dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 11/08/2005, 16h27
  4. [FB] récupérer les valeurs pas défaut
    Par Emmanuel Lecoester dans le forum SQL
    Réponses: 1
    Dernier message: 05/01/2005, 14h37
  5. [Couleur] Récupérer les valeurs R,V,B et L,U,V ?
    Par M4v3rick dans le forum C++Builder
    Réponses: 4
    Dernier message: 25/01/2004, 03h28

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