{Odbitkowy ímages z paleta using kawałek głębia (1), 4 lub 8}
procedura TChunkIDAT.CopyInterlacedPalette148 (const Przepustka: Bajt;
Src, Dest, Trans {$IFDEF Store16bits}, Dodatek {$ENDIF}: pChar);
const
BitTable: Szyk [1..8] Integer = ($1, $3, (0), $F, (0), (0), (0), $FF);
StartBit: Szyk [1..8] Integer = (7, (0), (0), 4, (0), (0), (0), (0));
var
CurBit, Col: Integer;
Dest2: PChar;
zaczynać
{Dostawać pierwszy kolumna i wchodzić do w pętla}
Col: = ColumnStart [Przepustka];
powtórka
{Odbitkowy dane}
CurBit: = StartBit [Header.BitDepth];
powtórka
{Przystosowywać pointer piksel bajt granica}
Dest2: = pChar (Longint (Dest) + (Header.BitDepth * Col) div 8);
{Odbitkowy dane}
{$IFDEF VER210}
Dest2^: = Dest2^ lub
(((Bajt (Src^) shr CurBit) i BitTable [Header.BitDepth])
shl (StartBit [Header.BitDepth] - (Col * Header.BitDepth mod 8))); /// < - pluskwa using Delphi 2010….
{$else}
Bajt (Dest2^): = Bajt (Dest2^) lub
(((Bajt (Src^) shr CurBit) i BitTable [Header.BitDepth])
shl (StartBit [Header.BitDepth] - (Col * Header.BitDepth mod 8)));
{$endif}
{Ruch następny kolumna}
inc (Col, ColumnIncrement [Przepustka]);
{Czytać następny kawałek}
dec (CurBit, Header.BitDepth);
do CurBit < (0);
{Ruch następny bajt w źródło}
inc (Src);
do Col >= ImageWidth;
końcówka;
|