Код
var
size, x, y: integer;
p: pointer;
f: file;
...
{ запись в файл: }
size := imagesize(x1, y1, x2, y2);
getmem(p, size);
getimage(x1, y1, x2, y2, p^);
blockwrite(f, p^, size);
x := x1; y := y1;
{необходимо для восстановления фрагмента экрана в том же месте}
...
{ чтение из файла: }
blockread(f, p^, size);
putimage(x, y, p^, copyput);
freemem(p, size);
P.S. Такой способ будет работать если запись фрагмента изображения и его чтение происходят в одной программе и программа не прекращает работу между этими действиями... (т.е. не происходит выхода из программы.)