画像サイズを MB または KB で取得する方法はありますか。実際には、任意の画像のファイル サイズを取得できますが、画像サイズを取得する関数は見つかりませんでした。このためにImagickを試しましたが、成功しませんでした。
getImageSize() 関数は画像の解像度のみを返します。そこから計算する必要があると思いますが、計算方法がわかりません。私を助けてください。
ありがとう
画像サイズを MB または KB で取得する方法はありますか。実際には、任意の画像のファイル サイズを取得できますが、画像サイズを取得する関数は見つかりませんでした。このためにImagickを試しましたが、成功しませんでした。
getImageSize() 関数は画像の解像度のみを返します。そこから計算する必要があると思いますが、計算方法がわかりません。私を助けてください。
ありがとう
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';
それが誰かを助けることを願っています。
それを得る方法はありません。
ピクセルとバイト/ビットは、異なるものを測定するために使用される完全に異なる単位です。それらの間に単純な関係はありません。X ピクセルが Y バイトであるとは言えません。異なるファイル形式の同じ画像は、画像サイズに関係なく、ファイルとしての重みが異なります。1 つのファイル形式であっても、2 つの 100x100 ピクセルの画像は、そのコンテンツの圧縮効果によりファイル サイズが異なります。
これは、未知の液体の 1 リットル (お望みであればガロン ;)) の重量を計算しようとするようなものです。
やり方がある。から識別コマンドを使用できますimagemagick
。何かのようなもの
exec("identify -format "%[fx:w/72] by %[fx:h/72] inches" {$_FILES['image']['tmp_name']}", $result);
または Imagick::identifyImage()
imagickで。
これにより、72DPIで画像サイズが得られます