合并三个或更多图像 - PHP

时间:2011-11-17 17:45:03

标签: php

对于我的网站,我一直在努力使人们的角色(目前由几个由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文件。

1 个答案:

答案 0 :(得分:2)

出现该错误是因为您需要提供文件名,而不是目录。 imagePNG函数不知道将此图像保存为哪个文件。

尝试

imagepng($templatePic, 'Images/anActualFileName.png');

我看到the docs说“路径”,这可能令人困惑,但是在包含文件名的unix术语中。如果你刚给它一个目录,它会把它称为文件?