2012-01-11 103 views
0

我试图平铺多个图像,即将一个直接放在另一个下面。它们都具有相同的宽度(120px)和不同的高度。用PHP拼接图像GD

这是我有:

$finalbg = null; 
for($i=0; $i<7; $i++) { 
    $addbg = imagecreatefromjpeg('images/left/'.$url[$drawn]); 
    $addsize = imagesy($addbg); 

    if($finalbg != null) $basesize = imagesy($finalbg); else $basesize = 0; 
    $newsize = $addsize+$basesize; 

    $newbg = imagecreatetruecolor(120, $newsize); 
    if($finalbg != null) imagecopy($newbg, $finalbg, 0, 0, 0, 0, 120, $basesize); 
    imagecopy($newbg, $addbg, 0, $basesize, 0, 0, 120, $addsize); 
    $finalbg = $newbg; 
} 

header("Content-type: image/jpeg"); 
imagejpeg($finalbg); 

大小正确输出,但它一直告诉图像包含错误,我不知道为什么:(同样的事情,如果我尝试输出addbg或newbg 。

感谢。

+0

$ url [$ drawn]是否正确?或者你需要像$ url [$ i]之类的东西? – djot 2012-01-11 03:23:22

+0

看到你得到的实际错误,转到文件>保存页面,然后打开记事本中的“图像”。阅读错误,并将其发布到此处。 – Different55 2012-01-11 03:23:45

+0

是,$ url [$ drawn]是正确的:) 我看到一个随机字符的加载,但没有错误信息。 – bur 2012-01-11 03:35:08

回答

0

好了,显然这个问题是,有HTML本来应该呈现的页面上,这证明不是可以结合一个GD图像。

所以我采取了不同的方法。我将渲染图像保存为文件,如下所示:

imagejpeg($finalbg, 'images/left/bg.jpg'); 

并将其设置为CSS中的背景。现在它的工作!