0

有没有办法以 MB 或 KB 为单位获取图像大小。其实我可以得到任何图像的文件大小,但没有找到任何函数来获取图像大小。我为此尝试了 Imagick,但没有成功。

getImageSize() 函数只返回图像的分辨率,我想我需要从那里计算它但不知道计算方法。请帮我。

谢谢

4

3 回答 3

0

没有办法得到它。

像素和字节/位是用于测量不同事物的完全不同的单位。它们之间没有简单的关系。你不能说X 像素是 Y 字节。不同文件格式的相同图像作为文件的权重不同,无论其图像大小如何。即使在一种文件格式中,两个 100x100 像素的图像也会由于其内容的压缩效果而在文件大小上有所不同。

这就像试图计算一升(或如果你愿意的话,一加仑;))任何未知液体的重量。

于 2012-06-13T13:09:44.747 回答
0

有一种方法。您可以使用来自 的 identify 推荐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 回答
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 回答