新明解だいがく生かつ辞典 -反省堂- 風の谷の13番目の大学生 -348ページ目

C言語の入門(初心者)13struct.c 060110 図形

#include <stdio.h>
#include <stdlib.h>
#define MS 300
void rect(unsigned char *, int, int, int, int, int, int, int); // 四角形の作成
int save(unsigned char *); //保存
typedef struct
{
char type[2];
unsigned long size;
unsigned short re1;
unsigned short re2;
unsigned long offset;
unsigned long head;
short width;
short height;
unsigned short planes;
unsigned short color;
}HEAD;

main()
{ unsigned char *bmp;
bmp=(unsigned char *)malloc(MS*MS*3);
rect (bmp,0,0, MS, MS,0,0,255); //背景
rect (bmp,100,100,100,100,255,0,0);//四角 赤
if ( save( bmp ) ) exit(1); // 画像の保存
}

void rect(unsigned char *bmp, int x0, int y0, int w, int h, int r, int g, int b)
{
int i, j;
for ( i =y0 ; i < y0+h ; i++)
{
for ( j =x0 ; j < x0+w ; j++ )
{
if(0<i<MS&&
bmp[(i*MS+j)*3+0]=b; // (画素に青色bを代入)
bmp[(i*MS+j)*3+1]=g; // (画素に緑色gを代入)
bmp[(i*MS+j)*3+2]=r; // (画素に赤色rを代入)
}
}
}
int save(unsigned char *bmp)
{
char fi[50];
FILE *fp;
HEAD h={"BM",MS*MS*3+26,0,0,26,12,MS,MS,1,24};
printf("Input file name:");
scanf("%s",fi);
if((fp=fopen(fi,"wb"))==NULL)
{
fprintf(stderr,"Error:file open[%s].\n",fi);
return 1;
}
fwrite(&h,2,1,fp);
fwrite(&h.size,24,1,fp);
fwrite(bmp,1,MS*MS*3,fp);
fclose(fp);
return 0;
}




c言語 図形, 空間 図形, 図形 問題, エクセル 図形, 数学 図形, cad 図形, jwcad 図形, 図形 描画 , 立体 図形 , jww 図形, リサージュ 図形, 平面 図形, パワーポイント 図形, jw 図形 , 算数 図形 , ワード 図形, 図形 データ, excel 図形, visio 図形, 図形 面積, 星 図形, word 図形, java 図形, 図形 素材, フローチャート 図形 , ハート 図形, フラクタル 図形, javascript 図形, 図形 公式 , 図形 ソフト, 図形 画像