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