C言語でクロマキー合成をする方法
input.bmpとbackground.bmpとoutput.bmpを作りで好きな絵を用意して、input.bmpというビットマップファイル(色数は24ビット)とbackground.bmpというファイルを開き,クロマキー合成をし,ビットマップファイルoutput.bmpに出力させる。
上記の物をC言語でするにはどうすればいいのでしょうか?
下記のものは自分でやったのですがやり方が分かりません。どなたか知恵を貸してください。
(ほとんど間違っていると思いますが・・・)
#include<stdio.h>
int main()
{
FILE *fp;
int i;
char data[2];
short s;
fp1=fopen("input.bmp","rb");
fp2=fopen("background.bmp","rb");
fp3=fopen("output.bmp","wb")
int k;
for(k=0;k<10000;k++){
fputc(0,fp);
fputc(0,fp);
fputc(0,fp);
}
fclose(fp);
fread(&data[0],1,2,fp1);
fread(&data[0],1,2,fp2);
fwrite(&data[0],1,2,fp3);
int fs;
fread(&fs,f1);
fread(&fs,f2);
fwrite(&fs,f3);
fp=fopen("aka.bmp","wb");
fread(moji,1,2,fp);
i=30054;
fread(&i,4,1,fp);
i=0;
fread(&i,4,1,fp);
i=54;
fread(&i,4,1,fp);
i=40;
fread(&i,4,1,fp);
i=100;
fread(&i,4,1,fp);
i=100;
fread(&i,4,1,fp);
s=1;
fread(&s,2,1,fp);
s=24;
fread(&s,2,1,fp);
i=0;
fread(&i,4,1,fp);
i=30000;
fread(&i,4,1,fp);
i=120;
fread(&i,4,1,fp);
i=120;
fread(&i,4,1,fp);
i=0;
fread(&i,4,1,fp);
i=0;
fread(&i,4,1,fp);
for(k=0;k<10000;k++){
fputc(0,fp);
fputc(0,fp);
fputc(70,fp);
}
fclose(fp);
fp=fopen("midori.bmp","wb");
fread(moji,1,2,fp);
i=30054;
fread(&i,4,1,fp);
i=0;
fread(&i,4,1,fp);
i=54;
fread(&i,4,1,fp);
i=40;
fread(&i,4,1,fp);
i=100;
fread(&i,4,1,fp);
i=100;
fread(&i,4,1,fp);
s=1;
fread(&s,2,1,fp);
s=24;
fread(&s,2,1,fp);
i=0;
fread(&i,4,1,fp);
i=30000;
fread(&i,4,1,fp);
i=120;
fread(&i,4,1,fp);
i=120;
fread(&i,4,1,fp);
i=0;
fread(&i,4,1,fp);
i=0;
fread(&i,4,1,fp);
for(k=0;k<10000;k++){
fputc(0,fp);
fputc(150,fp);
fputc(0,fp);
}
fclose(fp);
fp=fopen("ao.bmp","wb");
fread(moji,1,2,fp);
i=30054;
fread(&i,4,1,fp);
i=0;
fread(&i,4,1,fp);
i=54;
fread(&i,4,1,fp);
i=40;
fread(&i,4,1,fp);
i=100;
fread(&i,4,1,fp);
i=100;
fread(&i,4,1,fp);
s=1;
fread(&s,2,1,fp);
s=24;
fread(&s,2,1,fp);
i=0;
fread(&i,4,1,fp);
i=30000;
fread(&i,4,1,fp);
i=120;
fread(&i,4,1,fp);
i=120;
fread(&i,4,1,fp);
i=0;
fread(&i,4,1,fp);
i=0;
fread(&i,4,1,fp);
for(k=0;k<10000;k++){
fputc(255,fp);
fputc(0,fp);
fputc(0,fp);
}
fclose(fp);
return(0);
}
お礼
おおーなるほど。 名前のパラメータに、ファイル本体を突っ込んでたのが不味かった んですね。 ご指摘頂いた箇所を修正することで、期待通りの動作を得られました。 あと、bフラグを初めて知りました。マニュアルをよく読むと書いてありますね。 phpの理解が進みました。 ありがとうございます。