php imagick调整图像代码无法正常工作

Posted

技术标签:

【中文标题】php imagick调整图像代码无法正常工作【英文标题】:php imagick resize image code not working properly 【发布时间】:2015-07-18 19:32:03 【问题描述】:

我正在使用以下 Imagick 函数来调整图像大小。代码运行并调整图像大小,但来自服务器的错误提示“从测试服务器请求文档时发生错误”。而且我无法检测到问题。然而,在浏览器中,它会输出非人类可读的字符。如果我尝试将调整大小/修改后的图像输出到浏览器,则没有问题。当我尝试将图像保存到磁盘时,我遇到了这个问题。

这是我的代码:

<?php

imagick_resize('running.jpg');

function imagick_resize($image, $width = 460, $height = 300)


// define widescreen dimensions
// $width = 460;
// $height = 300;

// load an image
$i = new Imagick($_SERVER['DOCUMENT_ROOT'] . '/alchemyapi/' . $image);
// get the current image dimensions
$geo = $i->getImageGeometry();

// crop the image
if(($geo['width']/$width) < ($geo['height']/$height))

    $i->cropImage($geo['width'], floor($height*$geo['width']/$width), 0, (($geo['height']-($height*$geo['width']/$width))/2));

else

    $i->cropImage(ceil($width*$geo['height']/$height), $geo['height'], (($geo['width']-($width*$geo['height']/$height))/2), 0);

// thumbnail the image
$i->ThumbnailImage($width,$height,true);
// save or show or whatever the image
# $i->setImageFormat('png');
# header("Content-Type: image/png");
# unlink('small_square_img.png');
$i->writeImage($_SERVER['DOCUMENT_ROOT'] . '/alchemyapi/tmp/small_square_img.png'); 
# file_put_contents('small_square_img.png', $i);
exit($i);

?> 

【问题讨论】:

【参考方案1】:

您发送到浏览器的数据不是有效的图像。在您的某些文件中很可能在

如果发生,您应该检查并修复它,或者提供“非人类可读字符”的示例,以便人们了解问题所在。

【讨论】:

以上是关于php imagick调整图像代码无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

用php为imagick设置密度参数

使用 php Imagick 保留背景调整 PNG 的大小

没有 Imagick 的图像调整大小并失去透明度

与nodejs无法正常工作的imagemagick

在 PHP 中使用 Imagick 将 svg 转换为 png 时出现奇怪的裁剪问题

PHP Imagick 类 - 将 JPEG 转换为渐进式 JPEG?隔行不工作