[PHP-users 31625] Re: Spreadsheet::WriteExcelを使用してBitmapの表示
AMO 伊東 丈仁
itoh @ amoffice.co.jp
2007年 3月 6日 (火) 12:05:23 JST
(別の)伊東さま
お返事ありがとうござます。
>Writer/Worksheet.php(line 3382〜):
> // The first 2 bytes are used to identify the bitmap.
> $identity = unpack("A2ident", $data);
> if ($identity['ident'] != "BM") {
> $this->raiseError("$bitmap doesn't appear to be a valid bitmap
image.\n");
> }
PHP_Classes版を使用していまして、
Worksheet.php(line 2756〜):
// The first 2 bytes are used to identify the bitmap.
$identity = unpack("A2", $data);
if ($identity[''] != "BM") {
die("$bitmap doesn't appear to be a valid bitmap image.\n");
}
と表記されています。
>とりあえず手元のMSPaintでテキトウナBMPを作成して先頭2バイトを見たところ
>確かに「BM」となっていました。
これも確認しました。
表示させたいBitmapファイルの先頭は「BM」となっています。
>とはいえ私には unpack("A2ident", $data); がもう一つ理解できず
この $identity = unpack("A2", $data);ですが
$identityの配列内をvar_dumpして見てみました。
/*------Bitmapファイルが出力できないサーバ------*/
サーバOS:Linux/Fedora Core3
WEBサーバ:Apache2.0.53
PHP:4.3.11
GD/JPG/PNG/WBMP サポートしています。
#var_dumpの結果
array(1) {
[1]=>string(2) "BM"
}
test.bmp doesn't appear to be a valid bitmap image.
/*------Bitmapファイルが出力できるサーバ------*/
サーバOS:Linux RaQ550 コバルト
WEBサーバ:Apache1.3.20
PHP:4.2.2
GD/JPG/PNG/WBMP サポートしています。
#var_dumpの結果
array(1) {
[""]=>string(2) "BM"
}
Bitmapのバイナリコードが以下に続きます。
Bitmap先頭にある「BM」に対してunpackできていないということでしょうか?
unpackというものを使用したことが無く、このような解釈をしています。
ご指導いただけないでしょうか。宜しくお願い致します。
PHP-users メーリングリストの案内