"无法阅读图像"在laravel 4中上传svg图像时出错

时间:2016-03-26 06:18:33

标签: php laravel svg laravel-4 gd

我的代码适用于jpg,png图像调整图像大小,这是代码示例。

$image = Image::make("{$filePath}/{$fileName[0]}");
// Get the maximum uploaded image width
$maxWidth = Config::get('constants.max_uploaded_image_width');

// Resize the image
$image->resize($maxWidth, null, function($constraint)
{
    // Set an aspect ratio constraint
    $constraint->aspectRatio();

    // Prevent upsizing
    $constraint->upsize();
});

// Save the image
$image->save("{$filePath}/{$fileName[0]}");

此图片适用于jpgpng张图片,但当我使用svg时,它会返回Unable to read image from file之类的错误。任何解决方案?

3 个答案:

答案 0 :(得分:5)

SVG

不支持

Intervention Image

http://image.intervention.io/getting_started/formats

您可以使用ImageMagickSVG合作。

答案 1 :(得分:2)

您可能不想调整SVG图像的大小。所以解决方案是获取MIME-TYPE并跳过调整大小:

if($image->mime() != 'text/svg+xml') {
    // resize
}

答案 2 :(得分:1)

基本上SVG代表可缩放矢量图形,它的类型与任何其他图像不同,它在Web浏览器中是开放的,因此有不同的集成方式以下是如何集成它的方式。

1)将SVG文档转换为PHP文档。 2)使用object和embed元素在XHTML文档中包含SVG文档。 3)使用PHP的echo命令生成SVG。 4)使用phpHtmlLib库生成SVG。 5)使用PEAR :: XML_SVG包生成SVG文档。 6)使用PEAR :: Image_Canvas包生成SVG文档。 7)集成PHP,SVG和AJAX。