📜  PHP | getimagesizefromstring()函数(1)

📅  最后修改于: 2023-12-03 15:18:23.262000             🧑  作者: Mango

PHP | getimagesizefromstring()函数

getimagesizefromstring() 是一个用于获取指定字符串中图片的大小和类型的函数。该函数不需要将图片保存到磁盘上,直接传入图片数据即可。

语法
getimagesizefromstring ( string $imagedata [, array &$imageinfo ] ) : array|false
参数
  • imagedata:要检查的图片数据,必须是字符串类型。
  • imageinfo(可选):将返回图像的额外信息,如分辨率,文件类型和MIME类型等。这是一个引用类型的数组。
返回值

如果成功,则返回一个包含以下索引的数组:

  • [0] => 宽度
  • [1] => 高度
  • [2] => 图片类型: IMAGETYPE_GIF、IMAGETYPE_JPEG、IMAGETYPE_PNG、等等。也可以使用 exif_imagetype()函数来获取类型。
  • [3] => 线性 RGB 格式
  • [bits] => 每个颜色组件的位元数
  • [channels] => 颜色组件数

如果读取失败,则返回 false

示例
$image_data = file_get_contents("image.png");

$image_info = array();
list($width, $height, $type) = getimagesizefromstring($image_data, $image_info);

echo "宽度: " . $width . "<br>";
echo "高度: " . $height . "<br>";
echo "类型: " . $type . "<br>";
echo "MIME类型: " . $image_info['mime'] . "<br>";

输出:

宽度: 800
高度: 600
类型: 3
MIME类型: image/png
注意事项
  • 该函数要求传递的图片数据必须是完整的图片二进制数据。如果只提供部分数据,则导致无法获取图片大小和类型信息。

  • 如果使用 getimagesize()函数来获取图片的大小和类型,则必须将图片保存到磁盘上,再传递图片的路径给该函数。而 getimagesizefromstring() 则省略了将图片保存到磁盘上的步骤,因此可以大大提高程序效率和安全性。