i take it, your array of UInt32 contains the Color-Values?
The only thing coming to mind:
you would have to find the property of TImage which actually contains the color-information per x/y-coordinate (a TCanvas, TBitmap, whatever?).
That's assuming that Property is a 2D-Array representing height and width with the value being the color
IIRC, the memory-layout of a 2D-Array is "column"-wise, meaning:
e.g. Let's say you have 8 x 4 2D-Array (8 rows and 4 columns), so your array of UInt32 would have 32 Members [0..31]
"cell" [0,1] (First Row, second column) would have a memory-address of cell[7,0] (8th Row, 1st column) + 4 bytes
Addr. Cell
1000 0,0
1004 1,0
1008 2,0
1012 3,0
1016 4,0
1020 5,0
1024 6,0
1028 7,0
1032 0,1
1036 1,1
1040 2,1
1044 3,1
In that case: Bring your array of UInt32 in the "correct" order and then copy it over to [0,0]
Note: I have no idea how SetPixel works (as in: Is it just assigning the Value to x,y or is there some additional black magic happening)
Though, might be completely wrong here