Написала такую процедуру:
Procedure Copy_image;
var size:word;
buffer,:pointer;
f:file;
begin
size:=imagesize(200,20,400,220); {копирую первый кусочек}
getmem(buffer,size);
getimage(200,20,400,220,buffer^);
assign(f,'pic.dat');
rewrite(f,size);
blockwrite(f,buffer^,1);
close(f);
size:=imagesize(400,220,630,435); {копирую второй}
getmem(buffer,size);
getimage(400,220,630,435,buffer^);
assign(f,'pic1.dat');
rewrite(f,size);
blockwrite(f,buffer^,1);
close(f);
assign(f,'pic.dat'); {воспроизвожу первый}
reset(f,1);
getmem(buffer,filesize(f));
blockread(f,buffer^,filesize(f));
close(f);
putimage(200,20,buffer^,normalput);
assign(f,'pic1.dat'); { воспроизвожу второй}
reset(f,1);
getmem(buffer,size);
blockread(f,buffer^,filesize(f));
close(f);
putimage(400,220,buffer^,normalput);
end;