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 de la copia con la gama de colores usar las profundidades de pedacito 1, 4 o 8}
procedimiento TChunkIDAT.CopyInterlacedPalette148 (paso del const: Octeto;
Src, Dest, transporte {$IFDEF Store16bits}, adicional {$ENDIF}: pChar);
const
BitTable: Arsenal [1..8] del número entero = ($1, $3, 0, $F, 0, 0, 0, $FF);
StartBit: Arsenal [1..8] del número entero = (7, 0, 0, 4, 0, 0, 0, 0);
var
CurBit, columna: Número entero;
Dest2: PChar;
comenzar
{Conseguir la primera columna y entrar en lazo}
Columna: = ColumnStart [paso];
repetición
{Datos de la copia}
CurBit: = StartBit [Header.BitDepth];
repetición
{Ajustar el indicador a los límites del octeto del pixel}
Dest2: = pChar (Longint (Dest) + (Header.BitDepth * columna) div 8);
{Datos de la copia}
{$IFDEF VER210}
Dest2^: = Dest2^ o
((shr CurBit (del octeto (Src^)) y BitTable [Header.BitDepth])
shl (StartBit [Header.BitDepth] - (columna * MOD de Header.BitDepth 8))); /// < - insecto usar Delphi 2010….
{$else}
Octeto (Dest2^): = octeto (Dest2^) o
((shr CurBit (del octeto (Src^)) y BitTable [Header.BitDepth])
shl (StartBit [Header.BitDepth] - (columna * MOD de Header.BitDepth 8)));
{$endif}
{Movimiento a la columna siguiente}
inc. (columna, ColumnIncrement [paso]);
{Leerá los pedacitos siguientes}
diciembre (CurBit, Header.BitDepth);
hasta CurBit < 0;
{Movimiento al octeto siguiente en fuente}
inc. (Src);
hasta el >= ImageWidth de la columna;
extremo;
|