[PHP-users 31629] Re: Spreadsheet::WriteExcelを使用してBitmapの表示

AMO 伊東 丈仁 itoh @ amoffice.co.jp
2007年 3月 6日 (火) 16:05:08 JST


yusuke itoさま
菊澤さま

無事解決できましたので、ご報告させていただきます。

菊澤さまからアドバイスを頂いた内容をヒントに、いくつか修正を施しました。

>PHPのバージョンで名前無しのunpackの挙動が違うんじゃないでしょうか?
>・連想配列に名前無しで、入れる。
>・配列にインデックスを付けて、入れる。
>名前有りのunpackをしてやれば、多分うまくいくと思いますよ。
まさしくこれでした。

「PHP Version 4.3.11」を使用の方で同じ悩みをお持ちの方
ぜひ参考にしていただければと思います。

以下の部分を変更してうまくいきましたのでご紹介します。

Worksheet.php
2756付近
        // The first 2 bytes are used to identify the bitmap.
        $identity = unpack("A2ident", $data);
        if ($identity['ident'] != "BM") {
            die("$bitmap doesn't appear to be a valid bitmap image.\n");
        }
2768付近
        $size_array   = unpack("Vsa", substr($data, 0, 4));
        $size   = $size_array['sa'];

2799付近
        // Read and remove the bitmap compression. Verify compression.
        $compression = unpack("Vcomp", substr($data, 0, 4));
        $data = substr($data, 4);

        //$compression = 0;
        if ($compression['comp'] != 0) {
            die("$bitmap: compression not supported in bitmap image.\n");
        }

本当にありがとうございました。



PHP-users メーリングリストの案内