در محیط گرافیک در زبانهای برنامه نویسی تحت DOS اشکال ساده مثل مستطیل و دایره را می توان با پاک کردن و کشیدن مجدد براحتی جابجا نمود اما حرکت اشکال پیچیده با این روش بسیار وقت گیر می باشد بطوریکه پاک کردن و کشیدن دوباره شکل کاملا به چشم می آید. در چنین مواقعی می بایست شکل مورد نظر را که در داخل یک مستطیل فرضی قرار دارد , وارد یک حافظه کمکی نمود و محتویات این حافظه را در نقطه ای دلخواه در صفحه چاپ کرد .
در ابتدای کار یک متغیر از نوع int تعریف کنید که اندازه شکل محاسبه شود و در آن قرار گیرد. یک متغیر نیز از نوع *void تعریف کنید که در واقع بافری است که رنگ پیکسل های مستطیل در آن به ترتیب قرار می گیرند تا در موقع لزوم به همان ترتیب چاپ شوند:
int size;
void* buffer;
حال می بایست اندازه مستطیل را با تابع imagesize محاسبه و در متغیر size بریزید:
size=imagesize(x1,y1,x2,y2);
که پارامتر های آن به ترتیب مختصات گوشه بالای سمت چپ مستطیل و گوشه پایین سمت راست آن می باشند.
حال حافظه ای را با تابع malloc به اندازه size به buffer اختصاص دهید:
buffer=malloc(size);
الگوی این تابع در سر فایل alloc.h قرار دارد.(الگوی سایر توابع گفته شده در graphics.h می باشد.)
حال نوبت به خواندن پیکسلهای مستطیل می باشد. این کار را با تابع getimage انجام دهید که پیکسلها را خوانده و در بافر قرار می دهد:
getimage(x1,y1,x2,y2,buffer);
کار ما برای خواندن مستطیل به پایان رسیده است . فقط کافیست بافر خوانده شده را با تابع putimage در نقطه دلخواه چاپ کنیم :
putimage(x,y,buffer,COPY_PUT);
دو پارامتر اول این تابع مختصات نقطه مقصد می باشند .(گوشه بالای سمت چپ مستطیل در مقصد) پارامتر دوم بافر محتوی شکل و پارامتر سوم تعیین کننده نوع چاپ شدن شکل می باشد که دارای حالات زیر است :