在Laravel 4中上传SVG图片时出现“无法读取图像”错误

3
我有一些代码,可以用于调整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 格式时,会返回错误信息“无法读取文件中的图像”。有什么解决方案吗?

3个回答

5

但我不想转换为PNG格式,我想要SVG格式。有什么解决方案吗? - Himanshu Bhardiya

3

你可能不希望调整SVG图像的大小。因此,解决方案是获取MIME-TYPE并跳过调整大小:

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

1

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接