If I understand your question correctly, you want to draw a bitmap to a TImage but you are using you own format in the form of this array of colors? If this is what you are saying then what you would do is something like this.
Code:
Procedure DrawImage;
var
  X, Y: Integer;

begin
  for X := 0 to {whatever the high end of the X axis is} do
    for Y := 0 to {whatever the high end of the Y axis is} do
      Image1.Canvas.Pixels[x, y] := {the color value in hex i.e '$ff00ff};
end;
The only thing you need to make sure of is that you set the bounds of your TImage before you draw to the canvas. If this still is not what you are looking for lemme know.

-Jeremy