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

Langage Delphi Discussion :

Comment lire un fichier TIF 1 bit


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Comment lire un fichier TIF 1 bit
    Bonjour,

    Comment lire un fichier TIF 1 Bit comme un TBits ?

    Je veux dire comment avoir accès au début de l'image après avoir passé l'entête et (avec ou sans scanline) initialiser un TBits pour chaque pixel où noir=True et blanc=False ou vice versa ?

    Un exemple source serait le bien venu.

    A+

  2. #2
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    mais ça sert à rien!


    tu as ton tif. chaque pixels vaux déjà 1 ou 0, ton tif fait plus de 100Mo, inutile de passer par un TBit!

    pour savoir si un pixel est 0 ou 1 -> tu test le pixel en direct sur le tif
    pour changer le pixel, idem, direct sur le tif.

    --->>> [ame="http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=delphi+tiff"]FORMAT TIFF ET DELPHI[/ame] <<<---
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut
    J'ai trouvé grâce au lien --->>>FORMAT TIFF ET DELPHI Google: delphi+tiff <<<--- à l'adresse http://esibert.developpez.com/delphi/libtiff/ le code suivant qui semble parfaitement me convenir.
    PROBLEME je n'ai pas trouvé comment télécharger LibTiffDelphi, version 3.7.0.00 Même en cherchant sur GOOGLE : LibTiffDelphi+Download
    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
    var
      Source  : PTiff;
      BitsPerSampleValue: Word;
      Width, Height : Cardinal;
      SourceLine, DestLine : array of byte;
      I, J : integer;
    begin
    // first step
      Source:=TIFFOpen(FileName,'r');
      assert(Source<>nil,'Source File Missing');
      try
    // checking file format
        assert(TIFFGetField(Source,TIFFTAG_BITSPERSAMPLE,@BitsPerSampleValue)=1,
    	                       'Corrupted Source File with TIFFTAG_BITSPERSAMPLE');
        assert(BitsPerSampleValue=8,'Source File is not a 8bit color depth');
        assert(TIFFGetField(Source,TIFFTAG_SAMPLESPERPIXEL,@BitsPerSampleValue)=1,
    	                      'Corrupted Source File with TIFFTAG_SAMPLESPERPIXEL');
        assert(BitsPerSampleValue=3,'Source File as not 3 samples per value');
    // reading sizes
        assert(TIFFGetField(Source,TIFFTAG_IMAGEWIDTH,@Width)=1,'Corrupted Source file with TIFFTAG_IMAGEWIDTH');
        assert(TIFFGetField(Source,TIFFTAG_IMAGELENGTH,@Height)=1,'Corrupted Source file with TIFFTAG_IMAGELENGTH');
        setLength(SourceLine,3*Width);
     
        // calculating the density
        FillChar(Density[0,0,0],16777216,0);
        for J:=0 to Height-1 do
        begin
          TIFFReadScanline(Source,@(SourceLine[0]),J,0);
          for I:=0 to Width-1 do
            inc(Density[SourceLine[3*I],SourceLine[3*I+1],SourceLine[3*I+2]]);
        end;
    [...]    
      finally
        TIFFClose(Source);
      end;

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/02/2010, 19h19
  2. Comment lire des fichiers iso sous Windows 7 64 bits ?
    Par Battosaiii dans le forum Windows 7
    Réponses: 8
    Dernier message: 25/02/2010, 13h44
  3. [BCB 5]Comment lire un fichier AVI avec un TAnimate ?
    Par Sitting Bull dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/09/2004, 11h57
  4. Comment lire un fichier DB en cours d'utilisation par 1 autr
    Par jbat dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/03/2004, 11h06
  5. Comment lire un fichier image
    Par Charlemagne dans le forum DirectX
    Réponses: 9
    Dernier message: 12/03/2004, 00h22

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