- ベストアンサー
C言語のプログラム
以下の問題のプログラムの回答をお願いします。 C言語のプログラムで 100 × 100 ドットで、白黒が交互になっている(市松模様という)画像を作成するプログラムを作る。と、100 × 100 ドットのカラー画像で、各点の色を乱数で設定した画像を作成するプログラムを作る。 困っているんでどうかよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
以下のサイトのライブラリを利用して作成してみました。 http://coconut.sys.eng.shizuoka.ac.jp/bmp/ http://coconut.sys.eng.shizuoka.ac.jp/bmp/bmp.h http://coconut.sys.eng.shizuoka.ac.jp/bmp/bmp.c itimatu()で市松模様の白黒ビットマップ、 random_img()でランダム色のビットマップ画像を生成します。 #include <stdio.h> #include <time.h> #include <stdlib.h> #include "bmp.h" const static color BLACK = {0,0,0}; const static color WHITE = {255,255,255}; void itimatu(void) { img im; im.height = 100; im.width = 100; int x , y; int color; // 0=黒 1=白 for(y=0 ; y<100 ; y++) { if(y%2 == 0) color = 0; else color = 1; for(x=0 ; x<100 ; x++) { if(color == 0) im.data[y][x] = BLACK; else im.data[y][x] = WHITE; color = (color + 1) % 2; // 色反転 } } WriteBmp("itimatu.bmp" , &im); } void random_img(void) { srand((unsigned)time(NULL)); img im; im.height = 100; im.width = 100; int x , y; for(y=0 ; y<100 ; y++) { for(x=0 ; x<100 ; x++) { im.data[y][x].r = rand() % 256; im.data[y][x].g = rand() % 256; im.data[y][x].b = rand() % 256; } } WriteBmp("random.bmp" , &im); } int main(void) { itimatu(); random_img(); return 0; }
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
どのように困っているのでしょう? プログラミング環境が Windowsであれば ビットマップの作成方法などが分からないのでしょうか WinAPIならCreateBitmapを使うんですが ・・・ この引数に 幅、高さ、プレーン数、ビット数、初期ビット列 を適切に設定して呼び出せば ビットマップのハンドルを作成してくれます このビットマップを デバイスコンテキストに選択して FillRectなどを使って描画でしょう
補足
すみません説明不足でした。 C言語初心者なんでよくわからないんですが、プログラムの中身です。 一例を挙げると #include <stdio.h> int main (void) { return (0); } のような感じに回答お願いします。よろしかったら回答お願いいたします
お礼
丁寧な回答ありがとうございました。 おかげで助かりました。本当にありがとうございます。