0

画像サイズを MB または KB で取得する方法はありますか。実際には、任意の画像のファイル サイズを取得できますが、画像サイズを取得する関数は見つかりませんでした。このためにImagickを試しましたが、成功しませんでした。

getImageSize() 関数は画像の解像度のみを返します。そこから計算する必要があると思いますが、計算方法がわかりません。私を助けてください。

ありがとう

4

3 に答える 3

0

get_headers()「Content-Length」を取得する関数を使用して、ファイル サイズを取得できます。サイズはバイト単位になります。バイトをメガバイトに変換するには、単純に (1024 * 1024) で割ります。

例:

$url = 'http://www.lyreka.com/images/lyreka-logo.png';
$image = get_headers($url, 1);
$bytes = $image ["Content-Length"];
echo $bytes/(1024 * 1024) . 'MB';

それが誰かを助けることを願っています。

于 2015-01-14T01:37:51.000 に答える
0

それを得る方法はありません。

ピクセルとバイト/ビットは、異なるものを測定するために使用される完全に異なる単位です。それらの間に単純な関係はありません。X ピクセルが Y バイトであるとは言えません。異なるファイル形式の同じ画像は、画像サイズに関係なく、ファイルとしての重みが異なります。1 つのファイル形式であっても、2 つの 100x100 ピクセルの画像は、そのコンテンツの圧縮効果によりファイル サイズが異なります。

これは、未知の液体の 1 リットル (お望みであればガロン ;)) の重量を計算しようとするようなものです。

于 2012-06-13T13:09:44.747 に答える
0

やり方がある。から識別コマンドを使用できますimagemagick。何かのようなもの

exec("identify -format "%[fx:w/72] by %[fx:h/72] inches" {$_FILES['image']['tmp_name']}", $result);

または Imagick::identifyImage() imagickで。

これにより、72DPIで画像サイズが得られます

于 2012-06-13T13:19:20.657 に答える