Imagemagick Imagick导致输出解析错误

Imagemagick Imagick导致输出解析错误,imagemagick,imagick,parse-error,php-7.2,Imagemagick,Imagick,Parse Error,Php 7.2,我正在使用PHP7.2和ImageMagick-7.0.8-12。我正在使用它创建缩略图,如下所示: function thumbimg($sourcePath, $thumbPath) { try { if (file_exists($sourcePath)) { $imagick = new Imagick(); $imagick->readImage($sourcePath); $imag

我正在使用PHP7.2和ImageMagick-7.0.8-12。我正在使用它创建缩略图,如下所示:

function thumbimg($sourcePath, $thumbPath) {
    try {
        if (file_exists($sourcePath)) {
            $imagick = new Imagick();
            $imagick->readImage($sourcePath);
            $imagick->setImageFormat("jpg");
            header('Content-Type: image/jpeg');
            $imagick->writeImage($thumbPath);
            $imagick->clear();
            $imagick->destroy();
            chmod($thumbPath, 0755);
            return;
        }
    } catch (ImagickException $e) {
        echo $this->raiseError('Could not save image to file: ' . $e->getMessage(), IMAGE_TRANSFORM_ERROR_IO);
    }
    return;
}

php脚本确实按照设计返回了一个echo'ed JSON,但是当我查看网络返回预览时,它显示了一个带有该脚本的post链接的空白图像。此行为从以下行开始:
$imagick=new imagick()在此之前,它的行为正常。虽然我确实得到了所需的JSON,但它会干扰其他生成输出的函数。

我会寻找另一个Imagick示例,因为您的示例看起来有点混乱。在代码的中间有一个头,用于显示。不知道你为什么有一个chmod,我想如果需要它,它应该在Imagick代码的开头。我也没有看到任何缩略图代码

试试这个:

$im = new Imagick($input);
$im->resizeImage( 100, 100, imagick::FILTER_LANCZOS, TRUE );
$im->writeImage('resizeImage.jpg'); 
$im->destroy();
(该过滤器是可选的,因为在增大或减小大小时,Imagick将选择要使用的最佳过滤器。)


我想,正如@Mark Setchell所说的,销毁是不必要的,我会寻找另一个Imagick示例,因为您的示例看起来有点混乱。在代码的中间有一个头,用于显示。不知道你为什么有一个chmod,我想如果需要它,它应该在Imagick代码的开头。我也没有看到任何缩略图代码

试试这个:

$im = new Imagick($input);
$im->resizeImage( 100, 100, imagick::FILTER_LANCZOS, TRUE );
$im->writeImage('resizeImage.jpg'); 
$im->destroy();
(该过滤器是可选的,因为在增大或减小大小时,Imagick将选择要使用的最佳过滤器。)


我想正如@Mark Setchell所说的,销毁是不必要的

我相信
$imagick->destroy()
已被弃用且不必要。我相信
$imagick->destroy()
已弃用且不必要。