GDとPEARのFile_Archive.phpを使って、pngを以下のようにzip圧縮したいと考えていますが、うまくいきません。どのようにしたらいいのでしょうか。


$png = imagecreatefrompng("abc.png");

$test = File_Archive::toArchive("test.zip", File_Archive::toOutput());

$test->newFile("test/abc.png");
$test->writeData($png);

回答の条件
  • 1人2回まで
  • 登録:2007/07/25 04:22:57
  • 終了:2007/07/31 15:30:01

回答(3件)

id:tobeoscontinue No.1

tobeoscontinue回答回数213ベストアンサー獲得回数532007/07/27 00:24:58

ポイント60pt

単純にabc.pngを圧縮するということではダメなのでしょうか

File_Archive::extract(
   File_Archive::read("abc.png"),
   File_Archive::toArchive("test.zip", File_Archive::toOutput())
);

下記の場合は、圧縮したものを解凍はできるのですが、ちょっとおかしいようでメッセージが出ます(最後の方でチョッとだけ結果が違ってました)。

 $test = File_Archive::toArchive("test.zip", File_Archive::toOutput());
 $test->appendFile("abc.png", "abc.png");
 $test->close();

GDで作成したイメージ画像を圧縮したいという意味なら一旦、imagepng($png, "abc.png")を使ってファイルに落として圧縮したらいいと思います。

ファイル名を指定しなければ標準出力に出力されるようなのでそれを文字列として受け取れればwriteData()で出来るのですがその方法は解かりませんでした。


蛇足ながらpngなどは既に圧縮されているので、更に圧縮してもあまり効果はないように思います。

id:penchick

回答ありがとうございます。結局、別の方法で実現することができました。

2007/07/31 15:27:59

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 felix2007 600 459 4 2007-07-27 02:16:03
2 minkpa 4178 3646 55 2007-07-27 21:24:18

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません