2011-03-06 77 views
1

下面是我试图做的。请提醒我相当新的GD22个文件的PHP GD图像

我想用这种方式制作出2张图片中的图片;

填充有图像A背景矩形无1

后,我要绘制polygon在它填充有另一种图像。

我现在所拥有的是矩形和背景图像。

我可以绘制多边形,但我无法弄清楚如何用另一个图像填充它。它现在以蓝色填充,我想用另一张图片填充它。

继承人我的代码

$values = array(
      40, 50, // Point 1 (x, y) 
      20, 240, // Point 2 (x, y) 
      60, 60, // Point 3 (x, y) 
      240, 20, // Point 4 (x, y) 
      50, 40, // Point 5 (x, y) 
      10, 10 // Point 6 (x, y) 
     ); 

$image2 = imagecreatefromjpeg('test2.jpg'); 
$image = imagecreatefromjpeg('test.jpg'); 

$bg = imagecreatefromjpeg('test.jpg'); 

$fill = imagecolorallocate($image, 0, 0, 255); 

// fill the background 
imagefilledrectangle($image, 0, 0, 249, 249, $bg); 

// draw a polygon 
imagefilledpolygon($image, $values, 6, $fill); 

// flush image 
header('Content-type: image/jpg'); 
imagepng($image); 
imagedestroy($image); 

,你可以看到imagepng()只渲染$image我如何得到它来渲染$形象,$图像2

感谢所有

+1

您的标题有误,输出png图像时应为'Content-type:image/png'。 – Czechnology 2011-03-06 15:08:32

+0

是的,但这只是一个测试页面。它的工作没有任何头我给它。我专注于获取2图像加载到1 – MadeInDreams 2011-03-06 15:15:14

+0

你应该仍然纠正它。它只有三个字符。 – 2011-03-06 15:29:45

回答

0

我建议你撕裂imagealphablending关闭对于Image2,使用alpha值为0的颜色在Image2上绘制多边形的逆。打开imagealphablending。然后你可以通过Image1(背景)复制Image2。

+0

这是否意味着我必须将多边形自己绘制到图像中?Cuse我想做的事情不需要您绘制图像多边形坐标将由用户通过单击图像提供,因此每次都可以改变形状用户使用页面 – MadeInDreams 2011-03-06 15:22:40

+0

如果坐标很重要,并且您希望根据坐标创建新图像*,则必须创建它。缓存是另一个故事,你可以保存一个包含坐标的文件名,所以一旦创建了图像,就可以从光盘为后续请求提供服务。 - 虽然我可能会误解你的问题。 – vbence 2011-03-06 23:32:26

6

您需要在第一张图片上叠加第二张图片。

$file1 = 'test.jpg'; 
$file2 = 'test2.jpg'; 

// First image 
$image = imagecreatefromjpeg($file1); 

// Second image (the overlay) 
$overlay = imagecreatefromjpeg($file2); 

// We need to know the width and height of the overlay 
list($width, $height, $type, $attr) = getimagesize($file2); 

// Apply the overlay 
imagecopy($image, $overlay, 0, 0, 0, 0, $width, $height); 
imagedestroy($overlay); 

// Output the results 
header('Content-type: image/png'); 
imagepng($image); 
imagedestroy($image); 
+0

Haaaa !!这看起来像我在找什么。谢谢,我喜欢overlay = p – MadeInDreams 2011-03-06 15:28:14

+0

谢谢你。只是学习GD,这对我正在研究的片段有很大的帮助。 – 2012-09-25 12:23:05