d'après ceci le code ci-dessous devrait fonctionner
si tu obtiens un degradé linéaire c'est que le paramètre est bien un pointeur...mais en fait j'en doute.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 var pixels:array[0..255,0..255] of Byte; x, y: Integer; begin for y := 0 to 255 do for x := 0 to 255 do pixels[y, x] := x; EBW8Image1.SetImagePointer(256, 256, Integer(@pixels), 0) end;
second test, utiliser GlobalAlloc pour avoir un hMem.
ce qui peut se faire aussi comme ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 var pixels:array[0..255,0..255] of Byte; x, y: Integer; mem: hMem; ptr : Pointer; begin for y := 0 to 255 do for x := 0 to 255 do pixels[y, x] := x; mem := GlobalAlloc(GMEM_FIXED, SizeOf(Pixels)); ptr := GlobalLock(mem); Move(pixels, ptr^, SizeOf(pixels)); GlobalUnlock(mem); EBW8Image1.SetImagePointer(256, 256, mem, 0); GlobalFree(mem); end;
Partager