12月 2nd, 2006
IEの右クリックメニュー「名前を付けて画? を保存」操作をした時、対象画? がjpegやgifであるにも関゜ らず「無? .bmp」として? 存しようとする問題はよく言゜ れています。MSのサポートサイトでも、? 因は? 時ファイル? Temporary Internet Files )の破損であるため、一? Temporary Internet Filesフォルダ内のファイルを削除する対処方? を朏 示しています。
しかし、IEの「名前を付けて画? を保存」操作仕様が直接サーバから圏 信したファイルを保存するものではなぜ 、単に? 時ファイルから特? のフォルダへのコピー操作であるなら、サーバ側でキャッシュを無効としていた場合にはどうなるか。具? 的に以下のようぜ Apacheで設定している場合です。
<Files ~ "\.(jpg|gif|png)$">
Header set Pragma no-cache
Header set Cache-Control no-cache,no-store,must-revalidate
Header set Expires "Sat, 01 Dec 1990 00:00:00 GMT"
</Files>
この設定の場合、jpg, gif, pngファイルぜ IEの? 様で? 時ファイルに格? されず、「名前を付けて画? を保存」操作時にやはり「無? .bmp」で? 存しようとします。
対処方? はいぜ つかあると思いますが、以? のような方? でしょうか・ボ
・「対象をファイルに? 存」する。ただし、IMGタグぜ srcの指定が必要。
ボ CGIで読み込んでからダウンロードHTTPヘッダ(Content-Type, Content-Disposition)とともに出力する
11月 5th, 2006
文字列操作処理の手本にしているコピーコマンドのソースです。
while内に条件? を付ければいろいろと? 用も可能です。
char *copy(
char* chp_dst, /* (O) 変朏 後文字列 */
const char* chp_src /* (I) 変朏 前文字列 */
){
int i=0;
int j=0;
while( (chp_dst[i] = chp_src[j]) != '\0' ){
i++;
j++;
}
return chp_dst;
}
10月 31st, 2006
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