imagecreatefromjpeg()、imagecreatefrompng()、および imagecreatefromgif() を使用していくつかの画像ファイルを変換していますが、変換後の画像のファイルサイズを知りたいです。filesize(imagecreatefrompng(filename)) と getimagesize() を試しましたが、どれも機能していないようです。別の方法はありますか?
質問する
896 次
2 に答える
1
filesize()
ファイル名をgetimagesize()
期待します。imagecreatefromwhatever()
GD ファイル ハンドルを返します。一方を他方にフィードすることはできません。画像をファイルに保存してから、その新しいファイルでfilesizeを使用するか、出力バッファリングメカニズムを使用して保存関数の出力をキャプチャし、その上でstrlenを実行する必要があります。
$handle = imagecreatefromgif('original.gif');
imagepng($handle, 'new.png');
$size = filesize('new.png');
また
$handle = imagecreatefromgif('original.gif');
ob_start();
imagepng($handle);
$png = ob_get_clean();
$size = strlen($png);
そもそもそのファイルを生成せずに最終的な画像サイズを決定する実用的な方法は他にありません.PNG / JPG出力圧縮は画像の内容に大きく依存します.「単純な」画像は「忙しい」画像よりもはるかに圧縮されます.
于 2012-07-14T15:22:23.443 に答える
0
内部画像リソースにファイル サイズはありません。「ファイルサイズ」が意味を持つ前に、画像を最終的な形式で出力する必要があります。
于 2012-07-14T15:23:12.853 に答える