當前位置:編程學習大全網 - 源碼下載 - C語言畫圖__並保存我畫的圖片

C語言畫圖__並保存我畫的圖片

加些分上去,我把代碼貼上來。

/* HELLO.C -- Hello, world */

#include <graphics.h>

#include <stdio.h>

void save_pic(char *fn,int maxx,int maxy){

typedef long LONG;

typedef unsigned char BYTE;

typedef unsigned long DWORD;

typedef unsigned short WORD;

typedef struct tagBITMAPFILEHEADER {

WORD bfType;

DWORD bfSize;

WORD bfReserved1;

WORD bfReserved2;

DWORD bfOffBits;

} BITMAPFILEHEADER;

typedef struct tagBITMAPINFOHEADER{

DWORD biSize;

LONG biWidth;

LONG biHeight;

WORD biPlanes;

WORD biBitCount;

DWORD biCompression;

DWORD biSizeImage;

LONG biXPelsPerMeter;

LONG biYPelsPerMeter;

DWORD biClrUsed;

DWORD biClrImportant;

} BITMAPINFOHEADER;

int i,j;

FILE *fp;

BITMAPFILEHEADER bfh;

BITMAPINFOHEADER bif;

int color[16]={0,4,2,6,1,5,3,7,8,12,10,14,9,13,11,15};

unsigned char rgb[64]={0,0,0,0,0,0,128,0,0,128,0,0,0,128,128,0

,128,0,0,0,128,0,128,0,128,128,0,0,128,128,128,0

,192,192,192,0,0,0,225,0,0,255,0,0,0,255,255,0

,255,0,0,0,255,0,255,0,255,255,0,0,255,255,255,0};

union

{

unsigned char value;

struct

{

unsigned c1:4;

unsigned c2:4;

}color;

}mycolor;

bfh.bfType=0x4d42;

bfh.bfSize=153718;

bfh.bfReserved1=0;

bfh.bfReserved2=0;

bfh.bfOffBits=118;

bif.biSize=40;

bif.biWidth=640;

bif.biHeight=480;

bif.biPlanes=1;

bif.biBitCount=4;

bif.biCompression=0;

bif.biSizeImage=0;

bif.biXPelsPerMeter=0;

bif.biYPelsPerMeter=0;

bif.biClrUsed=0;

bif.biClrImportant=0;

fp=fopen(fn,"wb");

fwrite(&bfh,sizeof(bfh),1,fp);

fwrite(&bif,sizeof(bif),1,fp);

fwrite(rgb,sizeof(rgb),1,fp);

for(j=maxy-1;j>=0;j--){

for(i=0;i<maxx;i+=2){

mycolor.color.c2=color[getpixel(i,j)];

mycolor.color.c1=color[getpixel(i+1,j)];

putc(mycolor.value,fp);

}

}

fclose(fp);

}

main()

{

int gd=DETECT,gm;

int maxx,maxy,key;

registerbgidriver(EGAVGA_driver); /*用了這個函數後,妳的程序就算在下面沒指明BGI

路徑也能在每臺機器上運行,具體做法見我們論壇上貼子,<獨立圖形程序的建立>

/bbs/read.php?tid=56

不用這函數就要指明TC下BGI 的路徑*/

initgraph(&gd,&gm,"");/*如沒有完成上面步驟,""內寫上TC中 BGI路徑,如我的是d:\\tc3\\BGI*/

maxx=getmaxx()+1;

maxy=getmaxy()+1;

setcolor(14);

circle(maxx/2,maxy/2,50);

setcolor(15);

line(maxx/2-100,maxy/2-50,maxx/2+100,maxy/2-50);

save_pic("t.bmp",maxx,maxy);

getch();

closegraph();

}

  • 上一篇:c語言課程設計(教務信息管理系統)
  • 下一篇:《墮落聖杯》:融合了卡牌、回合制戰鬥、建設、RPG等多種要素
  • copyright 2024編程學習大全網