GD似乎有各种imagecreatefrom_x_
功能,如果您提前知道图像类型,那就太棒了。在我的特殊情况下,我没有。有没有办法在不知道类型的情况下读取图像?
到目前为止,我唯一的选择是将其保存到磁盘(昂贵!),然后使用getimagesize
(也提供mime类型) - 但这会导致我在图像中读取两次 - 一次确定MIME输入然后再将其读入GD。
或者,是否可以将变量视为文件?像这样的东西:
$image = file_get_contents('http://the.remote.file.com/myfile');
# doesn't work with already read in image ... can I treat this as a file w/o saving it?
$info = getimagesize($image);
答案 0 :(得分:2)
您可以使用imagecreatefromstring()
,这对于实际文件格式无关紧要,如果您已经在文件中阅读过,那么这是最佳选择。
但出于实际目的,您应该能够使用getimagesize($filename)
。您之前不必读入文件。只需使用文件名或网址。
print_r(
getimagesize("http://sstatic.net/stackoverflow/img/sprites.png?v=2")
);
答案 1 :(得分:1)
使用imagecreatefromstring,imagesx和imagesy(后两个用于阻止其他请求,因为它似乎与您有关):
$image = imagecreatefromstring(file_get_contents('http://path/to/image.jpg'));
list($width, $height) = array(imagesx($image), imagesy($image));