Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么用PHP和Imagick调用getImageBlob时会出现分段错误?_Php_Image Processing_Jpeg_Imagick - Fatal编程技术网

为什么用PHP和Imagick调用getImageBlob时会出现分段错误?

为什么用PHP和Imagick调用getImageBlob时会出现分段错误?,php,image-processing,jpeg,imagick,Php,Image Processing,Jpeg,Imagick,我在内存中有一个JPEG图像blob字符串,并将其加载到Imagick对象中。然后我将它调整为缩略图,压缩它,等等。当我将新的缩略图写入磁盘时,它工作正常,我可以看到文件。当我试图从Imagick获取Blob字符串时,它总是抛出一个分段错误。我从不需要将这些文件写入磁盘。我从URL获取它们,调整它们的大小,然后将图像blob字符串推送到AmazonS3键/值存储桶中 为什么它会抛出一个分段错误,我如何修复它 这是我的密码: $photo['Data'] = file_get_contents('

我在内存中有一个JPEG图像blob字符串,并将其加载到Imagick对象中。然后我将它调整为缩略图,压缩它,等等。当我将新的缩略图写入磁盘时,它工作正常,我可以看到文件。当我试图从Imagick获取Blob字符串时,它总是抛出一个分段错误。我从不需要将这些文件写入磁盘。我从URL获取它们,调整它们的大小,然后将图像blob字符串推送到AmazonS3键/值存储桶中

为什么它会抛出一个分段错误,我如何修复它

这是我的密码:

$photo['Data'] = file_get_contents('image_url'); // this works
$Image = new Imagick();
$Image->readImageBlob($photo['Data']);
$Image->scaleImage( 160, 0 );
$Image->setImageCompression( Imagick::COMPRESSION_JPEG );
$Image->setImageCompressionQuality( 60 );
$Image->setImageUnits( imagick::RESOLUTION_PIXELSPERINCH );
$Image->setImageResolution( 72, 72 );
$Image->stripImage();
$Image->writeImage('test.jpg'); // this produces a good thumbnail
$thumb['data'] = $Image->getImageBlob; // this throws a segmentation fault
Imagick版本信息

sudo-yum-info-php-pecl-imagick的输出

Loaded plugins: priorities, update-motd, upgrade-helper
Installed Packages
Name        : php-pecl-imagick
Arch        : x86_64
Version     : 3.1.0
Release     : 0.2.RC1.6.amzn1
Size        : 418 k
Repo        : installed
From repo   : amzn-main
Summary     : Provides a wrapper to the ImageMagick library
URL         : http://pecl.php.net/package/imagick
License     : PHP
Description : imagick is a native php extension to create and modify images using the
            : ImageMagick API.
            : This extension requires ImageMagick version 6.2.4+ and PHP 5.1.3+.
            : 
            : IMPORTANT: Version 2.x API is not compatible with earlier versions.
容易解决


getImageBlob
是一个PHP函数,需要有括号。调用
$Image->getImageBlob()
有效,而调用
$Image->getImageBlob
会导致分割错误。

您使用的是哪个版本的Imagick?像这样的东西对segfault并不意味着什么,应该加以修复。我正在使用通过
yum安装php-pecl-Imagick
在Amazon AWS上安装的Imagick。根据
identify-version
,它的版本是
ImageMagick 6.7.8-9 2014-05-12 Q16
。您能否发布
yum-info-php-pecl-imagick
的版本输出?添加到主要问题中。