uses
  GraphABC, System.Collections.Generic, System;

function MakeArr(f: string): List<Tuple<Color, Point>>; //Создание массива
var
  s: List<Tuple<Color, Point>> := new List<Tuple<Color, Point>>;
  img: Picture := new Picture(f);
  x, y: integer;
begin
  for x := 0 to img.Width - 1 do
    for y := 0 to img.Height - 1 do
    begin
      s.Add(new Tuple<Color, Point>(img.GetPixel(x, y), new Point(x, y)));
    end;
  result := s;
end;

procedure PaintArr(f: List<Tuple<Color, Point>>); //Отрисовка
begin
  foreach q: Tuple<Color, Point> in f do
    GraphABC.PutPixel(q.Item2.X, q.Item2.Y, q.Item1);
end;

var
  a: List<Tuple<Color, Point>> := new List<Tuple<Color, Point>>();
  d: string;

begin
  write('Путь (можно относительный): ');
  readln(d);
  a := MakeArr(d);
  PaintArr(a);
end.