class= " lineNumbers " de
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= de
class= " de l'id= " codeSnippet838347 de {ímages de copie avec la palette using profondeurs de peu 1, 4 ou 8}
procédé TChunkIDAT.CopyInterlacedPalette148 (passage de const : Byte ;
Src, DEST, transport {$IFDEF Store16bits}, supplémentaire {$ENDIF} : pChar) ;
const
BitTable : Choix [1..8] de nombre entier = ($1, $3, 0, $F, 0, 0, 0, $FF) ;
StartBit : Choix [1..8] de nombre entier = (7, 0, 0, 4, 0, 0, 0, 0) ;
variété
CurBit, colonne : Nombre entier ;
Dest2 : PChar ;
commencer
{Obtenir la première colonne et entrer dans la boucle}
Colonne : = ColumnStart [passage] ;
répétition
{Données de copie}
CurBit : = StartBit [Header.BitDepth] ;
répétition
{Ajuster l'indicateur sur des limites de byte de Pixel}
Dest2 : = pChar (Longint (DEST) + (Header.BitDepth * colonne) division 8) ;
{Données de copie}
{$IFDEF VER210}
Dest2^ : = Dest2^ ou
((shr CurBit (de byte (Src^)) et BitTable [Header.BitDepth])
shl (StartBit [Header.BitDepth] - (colonne * mod de Header.BitDepth 8))); /// < - bogue using Delphes 2010….
{$else}
Byte (Dest2^) : = byte (Dest2^) ou
((shr CurBit (de byte (Src^)) et BitTable [Header.BitDepth])
shl (StartBit [Header.BitDepth] - (colonne * mod de Header.BitDepth 8)));
{$endif}
{Mouvement à la prochaine colonne}
inc. (colonne, ColumnIncrement [passage]) ;
{Lira le prochain peu}
décembre (CurBit, Header.BitDepth) ;
jusqu'à CurBit < 0 ;
{Mouvement au prochain byte dans la source}
inc. (Src) ;
jusqu'au >= ImageWidth de colonne ;
extrémité ;
|