首先阅读底部,那里是最新的信息。其中大部分是旧信息(尽管您可能需要它)。
我开始编写一个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的行)处显示没有这样的文件或目录。怎么了?这一直都是问题所在。
发布于 2010-08-18 06:53:39
getimagesize 3:问题出在
()中。它在第13行(带有getimagesize的行)处显示没有这样的文件或目录。怎么了?
嗯,我们没有办法确定你发布的代码出了什么问题,只知道你向函数传递了一个无效的参数。
我最好的猜测是,$img之前是使用imagecreate()在内存中创建的,它返回一个资源句柄。
getimagesize($img)希望传入一个文件路径作为参数,因此传入一个句柄将b0rk它。
如果这就是问题所在,那么您应该能够通过将维度传递给函数并删除带有getimagesize()的行来修复它。
这一直都是问题所在。
不完全是。pr0wl指出了您的原始问题,您已将其删除并替换为另一个问题。
发布于 2010-08-18 02:38:44
$width和$heigth实际上是整型的吗?
发布于 2010-08-18 02:35:37
您是否已将要输出的文件的mime类型设置为image/png?
编辑:例如: header("Content-type: image/png");
我有过一次同样的问题,直到我添加了它。
https://stackoverflow.com/questions/3505717
复制相似问题