10月 31st, 2006
EPSぜ BoundingBox
EPSに代表されるPostScriptファイルでは、ファイル先頭のヘッダ領域ぜ “BoundingBox”と呼ばれる座木 情報を保持している。これを利用しぜ ImageMagick等のライブラリを使用しなぜ ても画? ファイルサイズを圏 得することが可能となる。
方? としては、文字列「%%BoundingBox:」を検索し、後に? ぜ “左? X座木 左? Y座木 右? X座木 右? Y座木 “の値を圏 得して? き算すれば良い。ただし、単位はポイントとなっているので、必要に? じてミリメートル、ピクセル? の単位に? 朏 する必要がある。また、ヘッダ領域の情報に「%% BoundingBox: (atend)」と? 義されている場合、画? データ最下部にフッタ領域に座標情報が付加されているので注? が必要となる。
st_fp = fopen( chp_file, "rb" ); for ( ;; ){ chp_fgets = fgets( cha_line, sizeof(cha_line), st_fp); // fgetsエラボ /ファイル? 了 if (chp_fgets == NULL){ break; } // 空? を無? if ( strlen(cha_line) == 0 ){ continue; } // コメント以? は無? if ( cha_line[0] != '%' ){ continue; } // 「BoundingBox: (atend)」 の場合は無? if ( strstr( cha_line, "atend" ) != NULL ){ continue; } // BoundingBoxなしは無? chp_str = strstr( cha_line, "%%BoundingBox:" ); if ( chp_str == NULL ){ continue; } else { // BoundingBox該? in_cnt = sscanf( chp_str, "%s %d %d %d %d", cha_box, &in_x1, &in_y1, &in_x2, &in_y2 ); if ( in_cnt != 5 ){ continue; } break; } } in_ret = fclose( st_fp );
1pt=1/72inch
1inch=25.4mm
1pt=0.352777778mm