08/07/09 20:29:09 .net
#include<stdio.h>
*s,*d;main(int c,char**v){long W,H,*t,x,y=0,a;unsigned char h[54],f[3];s=fopen(
v[1],"rb");d=fopen(v[2],"wb");fread(h,1,54,s);W=*(t=(long*)&h[18]);H=*(t+1);a=4
-W*3%4;fwrite(h,1,54,d);for(;y++<H;){for(x=0;x++<W;)fread(h,1,3,s),f[0]=f[1]=f[
2]=77*h[2]+150*h[1]+29*h[0]>>8,fwrite(f,1,3,d);a-4?fread(h,1,a,s):0;}}
bmp形式の画像(24bit限定)をグレイスケールに変換
一応4ビット境界にも対応させてある