首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP图像编辑

PHP图像编辑
EN

Stack Overflow用户
提问于 2010-08-18 02:32:38
回答 5查看 377关注 0票数 0

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

我开始编写一个PHP函数,它可以对您提供的图像进行变形/变形。我需要在开始时做一个黑色的背景,所以这就是我目前所做的:(不再是)

代码语言:javascript
复制
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;
}

但它给我的只是一个破碎的图像,至少从浏览器的角度来看是这样。会出什么问题呢?提前谢谢。

编辑:解决这个问题的另一种方法是,简单地制作一个方法,从一个填充了黑色的参数中创建一个与图像相同大小的真彩色图像。我会尽我最大的努力去做这件事,但如果你也能帮忙的话就太好了。

这是我目前的尝试:

代码语言:javascript
复制
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的行)处显示没有这样的文件或目录。怎么了?这一直都是问题所在。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-08-18 06:53:39

getimagesize 3:问题出在

()中。它在第13行(带有getimagesize的行)处显示没有这样的文件或目录。怎么了?

嗯,我们没有办法确定你发布的代码出了什么问题,只知道你向函数传递了一个无效的参数。

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

getimagesize($img)希望传入一个文件路径作为参数,因此传入一个句柄将b0rk它。

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

这一直都是问题所在。

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

票数 0
EN

Stack Overflow用户

发布于 2010-08-18 02:38:44

$width和$heigth实际上是整型的吗?

票数 1
EN

Stack Overflow用户

发布于 2010-08-18 02:35:37

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

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

我有过一次同样的问题,直到我添加了它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3505717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档