class= " lineNumbers " del
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= del
class= " del id= " codeSnippet838347 del {ímages della copia con la gamma di colori using le profondità di punta 1, 4 o 8}
procedura TChunkIDAT.CopyInterlacedPalette148 (passaggio del const: Byte;
Src, Dest, trasporto {$IFDEF Store16bits}, supplementare {$ENDIF}: pChar);
const
BitTable: Allineamento [1..8] del numero intero = ($1, $3, 0, $F, 0, 0, 0, $FF);
StartBit: Allineamento [1..8] del numero intero = (7, 0, 0, 4, 0, 0, 0, 0);
varietà
CurBit, colonna: Numero intero;
Dest2: PChar;
cominciare
{Ottenere la prima colonna ed entrare nel ciclo}
Colonna: = ColumnStart [passaggio];
ripetizione
{Dati della copia}
CurBit: = StartBit [Header.BitDepth];
ripetizione
{Registrare l'indicatore ai limiti di byte del pixel}
Dest2: = pChar (Longint (Dest) + (Header.BitDepth * colonna) divisione 8);
{Dati della copia}
{$IFDEF VER210}
Dest2^: = Dest2^ o
(((shr CurBit di byte (Src^)) e BitTable [Header.BitDepth])
shl (StartBit [Header.BitDepth] - (colonna * MOD di Header.BitDepth 8))); /// < - insetto using Delfi 2010….
{$else}
Byte (Dest2^): = byte (Dest2^) o
(((shr CurBit di byte (Src^)) e BitTable [Header.BitDepth])
shl (StartBit [Header.BitDepth] - (colonna * MOD di Header.BitDepth 8)));
{$endif}
{Movimento verso la colonna seguente}
inc (colonna, ColumnIncrement [passaggio]);
{Leggerà le punte seguenti}
dicembre (CurBit, Header.BitDepth);
fino a CurBit < 0;
{Movimento verso il byte seguente nella fonte}
inc (Src);
fino al >= ImageWidth della colonna;
estremità;
|