从TIFFbuf获取像素颜色

时间:2013-08-05 11:38:21

标签: delphi tiff libtiff

我需要从tiff文件中获取颜色信息,所以我在LibTiffDelphi lib的帮助下逐个瓦片地阅读它。 Tiff是单色的,打包在PackBits中。

我把每个瓷砖读成一个buff,之后我需要在每个tilem中得到黑色和白色的百分比,我不知道如何从buf获取此信息。

procedure readTiff (OpenTiff : PTIFF);
var
  buf :^char;
  tileByteCounts : array of Integer;
  ...
begin
  bufsize:= TIFFStripSize(OpenTiff);
  buf:=_TIFFmalloc(bufsize);

 for s:= 0 to  tileCount  do
            begin
               if (Tilebytecounts[s]< bufsize) then       
                begin
                buf := _TIFFrealloc(buf, Tilebytecounts[s]);
                  if (buf)=nil then
                    begin
                Exit;
                bufsize:= Tilebytecounts[s];
                    end;
                  rc := (TIFFReadRawTile(OpenTiff, s, buf, Tilebytecounts[s]));
                  if rc < 0 then
                     begin
                       _TIFFfree(buf);
                        Exit;
                     end;
                end;
             end;
          _TIFFfree(buf);

    TIFFClose(OpenTiff);

或者,如何将此buf保存到位图文件中?

0 个答案:

没有答案