【问题标题】:PHP image editingPHP图像编辑
【发布时间】:2010-08-18 07:05:17
【问题描述】:

首先阅读底部,这是最新信息所在的位置。其中大部分是旧信息(尽管您可能需要它)。

我开始制作一个 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 的行)说没有这样的文件或目录。怎么了?这一直是个问题。

【问题讨论】:

  • 您的函数调用右侧是否出现了此错误?如果是这样,这可能会有所帮助:parse-error-unexpected-t-string.com 基本上,您可能在脚本的其他地方缺少分号或右大括号。
  • 不,这是一个不同的错误,已在上一个问题中修复。我早就应该删除了。

标签: php image


【解决方案1】:

$width 和 $heigth 实际上是 int 吗?

【讨论】:

  • 嗯,我已经对要放入其中的图像进行了相同的矩形绘制方法......所以我想是的。
【解决方案2】:

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

好吧,我们无法确定您发布的代码出了什么问题,只是您将无效参数传递给函数。

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

getimagesize($img) 需要一个文件路径作为参数传入,所以传入一个句柄会阻止它。

如果这是问题所在,那么您应该能够通过将尺寸传递给函数并删除带有 getimagesize() 的行来解决它。

这一直是个问题。

不完全是。 pr0wl 指出了您最初的问题,您将其删除并替换为另一个问题。

【讨论】:

    【解决方案3】:

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

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

    在我添加之前,我曾经遇到过同样的问题。

    【讨论】:

    • 是的,我有。请记住,这是一个更大计划的一部分,所以我已经完成了其他所有工作。
    【解决方案4】:

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

    【讨论】:

    • 它仍然给我一个破碎的形象......它为什么会这样做?此外,当出现错误时,它总是从不提供图像,它会抛出异常并以文本形式提供给我。
    【解决方案5】:

    您必须指定要提供给客户的文件类型。 header("内容类型:图像/东西"); 什么地方就是那种形象。 页面中不得有其他打印、回显或 html,否则图像将被破坏。

    【讨论】:

    • 我已经在另一条评论中回答了这个问题;我已经让脚本工作了,现在我只是用函数更改图像。如果其余代码一开始就不起作用,我为什么要专门发布关于方法的问题?无论如何,这整件事是针对我正在从事的一个验证码项目的——当然不是以营利为目的的,我什至可能不会发布它……但是 morph 方法会扭曲它创建的字母。我已经完成了其余的代码,现在我只想在图像发送出去之前把字母扭一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多