Paint
program in c:- This program can draw different shapes using mouse such
as line, circle, pixel and many other shapes. You can also change the
color, clear the screen. Code of paint program in c is given below:-
/* To understand the code see output below the code, it will help you in understanding the code. */
Output of program:
Download executable file of c paint program.
/* To understand the code see output below the code, it will help you in understanding the code. */
C programming code
#include<graphics.h> #include<dos.h> #include<math.h> #include<stdlib.h> #include<stdio.h> #include<conio.h> union REGS i, o; int leftcolor[15]; int get_key() { union REGS i,o; i.h.ah = 0; int86(22,&i,&o); return ( o.h.ah ); } void draw_color_panel() { int left, top, c, color; left = 100; top = 436; color = getcolor(); setcolor(GREEN); rectangle(4,431,635,457); setcolor(RED); settextstyle(TRIPLEX_FONT,0,2); outtextxy(10,431,"Colors : "); for( c = 1 ; c <= 15 ; c++ ) { setfillstyle(SOLID_FILL, c); bar(left, top, left+16, top+16); leftcolor[c-1] = left; left += 26; } setcolor(color); } void draw_shape_panel() { int left, top, c, color; left = 529; top = 45; color = getcolor(); setcolor(GREEN); rectangle(525,40,633,255); for( c = 1 ; c <= 7 ; c++ ) { rectangle(left, top, left+100, top+25); top += 30; } setcolor(RED); outtextxy(530,45,"Bar"); outtextxy(530,75,"Line"); outtextxy(530,105,"Pixel"); outtextxy(530,135,"Ellipse"); outtextxy(530,165,"Freehand"); outtextxy(530,195,"Rectangle"); outtextxy(530,225,"Clear"); setcolor(color); } void change_color(int x, int y) { int c; for( c = 0 ; c <= 13 ; c++ ) { if( x > leftcolor[c] && x < leftcolor[c+1] && y > 437 && y < 453 ) setcolor(c+1); if( x > leftcolor[14] && x < 505 && y > 437 && y < 453 ) setcolor(WHITE); } } char change_shape(int x, int y) { if ( x > 529 && x < 625 && y > 45 && y < 70 ) return 'b'; else if ( x > 529 && x < 625 && y > 75 && y < 100 ) return 'l'; else if ( x > 529 && x < 625 && y > 105 && y < 130 ) return 'p'; else if ( x > 529 && x < 625 && y > 135 && y < 160 ) return 'e'; else if ( x > 529 && x < 625 && y > 165 && y < 190 ) return 'f'; else if ( x > 529 && x < 625 && y > 195 && y < 220 ) return 'r'; else if ( x > 529 && x < 625 && y > 225 && y < 250 ) return 'c'; } void showmouseptr() { i.x.ax = 1; int86(0x33,&i,&o); } void hidemouseptr() { i.x.ax = 2; int86(0x33,&i,&o); } void restrictmouseptr( int x1, int y1, int x2, int y2) { i.x.ax = 7; i.x.cx = x1; i.x.dx = x2; int86(0x33,&i,&o); i.x.ax = 8; i.x.cx = y1; i.x.dx = y2; int86(0x33,&i,&o); } void getmousepos(int *button,int *x,int *y) { i.x.ax = 3; int86(0x33,&i,&o); *button = o.x.bx; *x = o.x.cx; *y = o.x.dx; } main() { int gd = DETECT,gm; int maxx,maxy,x,y,button,prevx,prevy,temp1,temp2,key,color; char ch = 'f' ; // default free-hand drawing initgraph(&gd,&gm,"C:\\TC\\BGI"); maxx = getmaxx(); maxy = getmaxy(); setcolor(BLUE); rectangle(0,0,maxx,maxy); setcolor(WHITE); settextstyle(SANS_SERIF_FONT,HORIZ_DIR,2); outtextxy(maxx/2-180,maxy-28,"<a href="http://www.programmingsimplified.com"">www.programmingsimplified.com"</a>); draw_color_panel(); draw_shape_panel(); setviewport(1,1,maxx-1,maxy-1,1); restrictmouseptr(1,1,maxx-1,maxy-1); showmouseptr(); rectangle(2,2,518,427); setviewport(1,1,519,428,1); while(1) { if(kbhit()) { key = get_key(); if( key == 1 ) { closegraph(); exit(0); } } getmousepos(&button,&x,&y); if( button == 1 ) { if( x > 4 && x < 635 && y > 431 && y < 457 ) change_color( x, y ); else if ( x > 529 && x < 625 && y > 40 && y < 250 ) ch = change_shape( x, y ); temp1 = x ; temp2 = y ; if ( ch == 'f' ) { hidemouseptr(); while( button == 1 ) { line(temp1,temp2,x,y); temp1 = x; temp2 = y; getmousepos(&button,&x,&y); } showmouseptr(); } while( button == 1) getmousepos(&button,&x,&y); /* to avoid interference of mouse while drawing */ hidemouseptr(); if( ch == 'p') putpixel(x,y,getcolor()); else if ( ch == 'b' ) { setfillstyle(SOLID_FILL,getcolor()); bar(temp1,temp2,x,y); } else if ( ch == 'l') line(temp1,temp2,x,y); else if ( ch == 'e') ellipse(temp1,temp2,0,360,abs(x-temp1),abs(y-temp2)); else if ( ch == 'r' ) rectangle(temp1,temp2,x,y); else if ( ch == 'c' ) { ch = 'f'; // setting to freehand drawing clearviewport(); color = getcolor(); setcolor(WHITE); rectangle(2,2,518,427); setcolor(color); } showmouseptr(); } } }
Download executable file of c paint program.
No comments:
Post a Comment