2007年9月22日土曜日

画像のファイルフォーマットについて

C言語でファイルフォーマットチェック関数を簡単に作ってみました。
今後はファイルサイズなどもチェックできるように使用と思います。
JPEGフォーマットについて:
http://siisise.net/jpeg.html#format

int checkextent( char* chp_file ) {
int in_cnt = 0;
int in_ret = 0;

char* chp_ret = NULL;
char cha_buff[ BUFF_SIZE + 1];

FILE* fp = NULL;

chp_ret =fgets( cha_buff, BUFF_SIZE , fp );
if ( *chp_ret = 0xFFFFFFFF && *(chp_ret+1) == 0xFFFFFFD8 ) {
return JPEG_FORMAT;
}else if ( *chp_ret == 'G' && *(chp_ret +1 ) == 'I' &&
*(chp_ret +2)== 'F' ) {
return GIF_FORMAT;
}else if ( *chp_ret == 0xFFFFFF89 && *(chp_ret +1 ) == 0x50 &&
*(chp_ret +2 ) == 0x4E &&
*(chp_ret +3 ) == 0x47 &&
*(chp_ret +4 ) == 0x0D &&
*(chp_ret +5 ) == 0x0A ) {
chp_ret = fgets( cha_buff, BUFF_SIZE , fp );
if ( *(chp_ret ) ==0x1A &&
*(chp_ret +1 ) == 0x0A ) {
return PNG_FORMAT;
}
}
fclose( fp );
return NG;
}

0 件のコメント:

コメントを投稿