Delphi中如何编写图像解析组件[3]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 ehom 的 blog

        //
      end;
    end;

    if (not mapreaded) and (header.maplength>0) then
    begin
      position := position + header.maplength;
    end;
    //如果调色板长度不为0,而又未正确读取相关信息时,跳过这一段数据

    case header.depth of
      8:
      begin
        if header.rastype = rt_byte_encoded then
        begin
          //encode
          //关于rle压缩的编码解码请自行查阅资料
          raserror('不支持压缩格式!');
        end
        else
        begin
          for y := 0 to height-1 do
          begin
            row8:=scanline[y];
            readbuffer(row8^,width);
            if (width mod 2)=1 then
            begin
               position := position + 1;
            end;
          end;
        end;
      end;{end of 8bit}
      24:
      begin
        case header.rastype of
          rt_old,
          rt_standard:
          begin
            for y := 0 to height-1 do
            begin
              row24:=scanline[y];
              readbuffer(row24^,width*3);
              if (width mod 2)=1 then
              begin
                 position := position + 1;
              end;
            end;
          end;
          rt_byte_encoded:
          begin
            //encode
            //关于rle压缩的编码解码请自行查阅资料
            raserror('不支持压缩格式!');
          end;
          rt_format_rgb:
          begin
            for y := 0 to height-1 do
            begin
              row24:=scanline[y];
              readbuffer(row24^,width*3);
              for i := 0 to width-1 do
              begin
                colorbyte := row24^.rgbtred;
                row24^.rgbtred := row24^.rgbtblue;
                row24^.rgbtblue := colorbyte;
                inc(row24);
              end;

本文关键:图像解析,RAS,TGraphic,TPicture
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top