Imagemagick内存异常

时间:2014-02-03 12:12:32

标签: php drupal imagemagick

我有以下脚本,它运行良好,直到$ image-> readImageBlob($ svg),此时它会抛出:

ImagickException:内存分配失败了`/ tmp / magick-XXRrIUil'@ svg.c / ReadSVGImage / 2825 in Imagick-> readimageblob()( * 的第73行)。

<?php
    //if its not a png, we're a registered user, they have confirmed an overwrite, so just replace it.
        $file = file_save_data($image['contents'], $_GET['dir'].'/'.$_GET['name'], FILE_EXISTS_REPLACE);
        cg_utils_watch("file object on svg save", "", $file); //logging function 1

        $fhandle = fopen($file->uri, 'r');
        $result = fread($fhandle, filesize($file->uri));
        //apparently needed for image magic, see http://stackoverflow.com/questions/18661811/convert-svg-to-png-with-imagemagick-in-php top answer
        $svg = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>'.$result;
        cg_utils_watch("fread result","",$svg); // logging function 2
        fclose($fhandle);

        //make png of svg for display on user end. svg is used for editing and pdf generation on order.
        $image = new Imagick();
        $image->readImageBlob($svg);
        cg_utils_watch("png from svg", "", $image); //logging function 3
        $image->setImageFormat("png24");
?>

基本上我想要一个svg文件并将其转换为png。但我似乎无法解决这个记忆问题。

有人有什么想法吗?

EDIT ::

只需对应用程序运行一个简单的测试,制作图像的缩略图。脚本成功完成,然后抛出一个seg错误。

脚本:

<?php
$im = new imagick( 'a.jpg' );
// resize by 200 width and keep the ratio
$im->thumbnailImage( 200, 0);
// write to disk
$im->writeImage( 'a_thumbnail.jpg' );
?> 

结果是根目录中名为a_thumbnain.jpg的工作文件和“分段错误(核心转储)”的输出

0 个答案:

没有答案