class= " lineNumbers " do
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:
36:
37:
38:
39:
40:
41:
42:
43:
|
class= do
class= " do id= " codeSnippet838347 do {ímages da cópia com a paleta using as profundidades de bocado 1, 4 ou 8}
procedimento TChunkIDAT.CopyInterlacedPalette148 (passagem do const: Byte;
Src, Dest, transporte {$IFDEF Store16bits}, extra {$ENDIF}: pChar);
const
BitTable: Disposição [1..8] de inteiro = ($1, $3, 0, $F, 0, 0, 0, $FF);
StartBit: Disposição [1..8] de inteiro = (7, 0, 0, 4, 0, 0, 0, 0);
var
CurBit, coluna: Inteiro;
Dest2: PChar;
começar
{Começ a primeira coluna e a entrar no laço}
Coluna: = ColumnStart [passagem];
repetição
{Dados da cópia}
CurBit: = StartBit [Header.BitDepth];
repetição
{Ajustar o ponteiro aos limites do byte do pixel}
Dest2: = pChar (Longint (Dest) + (Header.BitDepth * coluna) div 8);
{Dados da cópia}
{$IFDEF VER210}
Dest2^: = Dest2^ ou
(((shr CurBit do byte (Src^)) e BitTable [Header.BitDepth])
shl (StartBit [Header.BitDepth] - (coluna * modificação 8 de Header.BitDepth))); /// < - erro using Delphi 2010….
{$else}
Byte (Dest2^): = byte (Dest2^) ou
(((shr CurBit do byte (Src^)) e BitTable [Header.BitDepth])
shl (StartBit [Header.BitDepth] - (coluna * modificação 8 de Header.BitDepth)));
{$endif}
{Movimento à coluna seguinte}
inc (coluna, ColumnIncrement [passagem]);
{Lerá bocados seguintes}
dezembro (CurBit, Header.BitDepth);
até CurBit < 0;
{Movimento ao byte seguinte na fonte}
inc (Src);
até o >= ImageWidth da coluna;
extremidade;
|