PHP图像编辑

时间:2010-08-17 18:32:38

标签: php image

首先阅读底部,其中包含最新信息。其中大部分都是旧信息(尽管你可能需要它)。

我开始制作一个PHP函数来变形/变形你给它的图像。我需要制作一个黑色的背景来开始,所以这就是我到目前为止:(不再是)

function morph($img) {

    list($width, $height) = getimagesize($img);
    //$width = $size[0];
    //$height = $size[1];
    $tempImg = imagecreatetruecolor($width, $height);

    //Create the image background
    imagefilledrectangle($tempImg, 0, 0, $width, $height, imagecolorallocate($tempImg, 0, 0, 0));
    return $tempImg;
}

但它给我的一切都是破碎的图像,至少从浏览器的角度来看。可能有什么不对?提前谢谢。

编辑:解决这个问题的另一种方法,很多人都遇到了麻烦,就是简单地制作一个方法,用充满黑色的参数创建一个与图像大小相同的真彩色图像。我会尽力做到这一点,但如果你能提供帮助也会很棒。

这是我目前的尝试:

function morph($img) {

    list($width, $height) = getimagesize($img);
    //$width = $size[0];
    //$height = $size[1];
        $tempImg = imagecreatetruecolor($width, $height);

        //Create the image background
        imagefilledrectangle($tempImg, 0, 0, $width, $height, imagecolorallocate($tempImg, 0, 0, 0));
        return $tempImg;
}

同样的结果。

编辑2:我找到了问题的根源!在窥探结果后,我发现imagecreatetruecolor()接收的尺寸无效。我在getimagesize()和我得到的数组中做错了。我需要弄清楚是什么。

编辑3:问题出在getimagesize()中。它在第13行(与getimagesize一行)中没有说明这样的文件或目录。怎么了?这一直是个问题。

5 个答案:

答案 0 :(得分:1)

是$ width和$ height实际上是intp>

答案 1 :(得分:0)

您是否已将要输出的文件的mime类型设置为image / png?

编辑:例如:header(“Content-type:image / png”);

在我添加之前,我遇到了同样的问题。

答案 2 :(得分:0)

检查错误日志或运行脚本而不设置标头内容类型。您将看到导致脚本失败的错误消息。在这种情况下,您很可能会得到类似'$ tempImg不是资源'的内容。

答案 3 :(得分:0)

您必须指定您为客户提供的文件类型。 header(“Content-type:image / something”); 什么东西是那种形象。 页面中不得包含其他打印,回显或html,否则图像将被破坏。

答案 4 :(得分:0)

  
    

编辑3:问题出在getimagesize()中。它在第13行(与getimagesize一行)中没有说明这样的文件或目录。怎么了?

  

好吧,我们无法确定您发布的代码是否出错,只是您将无效参数传递给函数。

我最好的猜测是以前使用imagecreate()在RAM中创建了$ img,它返回了一个资源句柄。

getimagesize($ img)期望将文件路径作为参数传入,因此传递一个句柄将使其成为b0rk。

如果这是问题,那么您应该能够通过将维度传递给函数并使用getimagesize()删除该行来修复它。

  
    

这一直是个问题。

  

不完全。 pr0wl指出了你原来的问题,你删除了它并替换为另一个问题。