对于我的网站,我一直在努力使人们的角色(目前由几个由CSS移动的图片组成)合并为一个图像,以使我的生活更轻松。目前无效的代码块如下:
$template = $charRow['template'];
$gender = $charRow['gender'];
$shirt = $charRow['shirt'];
$pants = $charRow['pants'];
$hat = $charRow['hat'];
$templatePic = imagecreatefrompng("Templates/".$template);
if (!empty($shirt)) {
$shirtPic = imagecreatefrompng($shirt);
imagecopy($templatePic,$shirtPic,0,0,0,0,imagesx($templatePic),imagesy($templatePic));
}
if (!empty($pants)) {
$pantsPic = imagecreatefrompng($pants);
imagecopy($templatePic,$pantsPic,0,0,0,0,imagesx($templatePic),imagesy($templatePic));
}
if (!empty($hat)) {
$hatPic = imagecreatefrompng($hat);
imagecopy($templatePic,$hatPic,0,0,0,0,imagesx($templatePic),imagesy($templatePic));
}
imagePNG($templatePic, 'Images/'); //Problem line...
这是PHP给我的错误:
警告:imagepng()[function.imagepng]:无法打开'Images /'进行写入:是第139行的PathToParentFolderOfFollowingFile / testFile.php中的目录
这个错误到底意味着什么?如何解决?
注意:$charRow
不是问题。获取它的查询并没有显示给所有人。
另外......你如何使透明度有效?我正在使用的所有文件都是具有透明度的PNG文件。
答案 0 :(得分:2)
出现该错误是因为您需要提供文件名,而不是目录。 imagePNG函数不知道将此图像保存为哪个文件。
尝试
imagepng($templatePic, 'Images/anActualFileName.png');
我看到the docs说“路径”,这可能令人困惑,但是在包含文件名的unix术语中。如果你刚给它一个目录,它会把它称为文件?