1

在使用curl in 上传图像后,我正在使用Imagine/tmp来调整图像大小:

$_imagine = new \Imagine\Gd\Imagine();
$mode = \Imagine\Image\ImageInterface::THUMBNAIL_INSET;
$image = $_imagine->open($path); // i.e $path = '/tmp/photo.jpg'
// then resizing the $image

它适用于我以前上传的任何图像/tmp,但是在上传此图像时http://newsimg.bbc.co.uk/media/images/67373000/jpg/_67373987_09f1654a-e583-4b5f-bfc4-f05850c6d3ce.jpg然后尝试用想象打开它,它给出了以下错误:

致命错误:未捕获的异常“Imagine\Exception\InvalidArgumentException”与消息“无法从给定输入创建图像”

有人知道这张图片有什么问题导致它抛出这个异常吗?


这是print_r(getimagesize($path));@hakre 所问的:

Array
(
    [0] => 464
    [1] => 261
    [2] => 6
    [3] => width="464" height="261"
    [bits] => 32
    [mime] => image/x-ms-bmp
)
4

2 回答 2

2

这类似于此处回答的问题: Unable to create GD image resource from BMP with MIME type 'image/x-ms-bmp' in PHP

简而言之,这是一个 BMP 图像,GD 无法处理它,因为从这个答案看来,我会尝试 ImageMagick / GMagick

于 2013-07-08T17:23:39.367 回答
0

如果您查看源代码,您可以直接找到解释。那个 Imagine 类使用 PHP 的底层 GD 图像库来打开图像。

异常Imagine\Exception\InvalidArgumentException消息

无法从给定的输入创建图像

只是意味着该imagecreatefromstring()功能失败。

但是,对于当前的 Imagine 版本,不应在\Imagine\Gd\Imagine::open(). 所以你可能使用的是不同的版本。

于 2013-07-07T15:42:04.467 回答