有没有办法以 MB 或 KB 为单位获取图像大小。其实我可以得到任何图像的文件大小,但没有找到任何函数来获取图像大小。我为此尝试了 Imagick,但没有成功。
getImageSize() 函数只返回图像的分辨率,我想我需要从那里计算它但不知道计算方法。请帮我。
谢谢
有没有办法以 MB 或 KB 为单位获取图像大小。其实我可以得到任何图像的文件大小,但没有找到任何函数来获取图像大小。我为此尝试了 Imagick,但没有成功。
getImageSize() 函数只返回图像的分辨率,我想我需要从那里计算它但不知道计算方法。请帮我。
谢谢
没有办法得到它。
像素和字节/位是用于测量不同事物的完全不同的单位。它们之间没有简单的关系。你不能说X 像素是 Y 字节。不同文件格式的相同图像作为文件的权重不同,无论其图像大小如何。即使在一种文件格式中,两个 100x100 像素的图像也会由于其内容的压缩效果而在文件大小上有所不同。
这就像试图计算一升(或如果你愿意的话,一加仑;))任何未知液体的重量。
有一种方法。您可以使用来自 的 identify 推荐imagemagick
。就像是
exec("identify -format "%[fx:w/72] by %[fx:h/72] inches" {$_FILES['image']['tmp_name']}", $result);
或 Imagick::identifyImage()
与imagick。
这将为您提供 72DPI 的图像大小
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';
希望对某人有所帮助。