//
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;