在单个图像上添加多个图像(使用数据库中的数据)

时间:2015-12-01 02:48:26

标签: php image

我已经尝试了过去3天我所知道的一切,但无法弄清楚,所以我希望有人可以帮我解决这个问题。

我想从数据库中获取多条记录。在数据库中,每个记录都指向指定缩略图,x坐标和y坐标的链接。

必须从建筑物的空地图(plattegrond.jpg)开始创建图像(建筑物的地图)。然后,必须添加多个缩略图,其中包含数据库中指定的协调数字(请参见下图)。添加所有缩略图后,必须将其保存为Project1.jpg等等。

$emptymap = "plattegrond.jpg"; // this is a map of a building
$newmap = "Project1.jpg"; // this must be the new map with the images

header('Content-type: image/jpeg');
$im = @imagecreatefromjpeg('maps/'.$emptymap) or die("Cannot Initialize new GD image stream");
$im2 = @imagecreatefromjpeg('thumbnails/'.$linkToThumbnail);
imagecopy($im, $im2, $xcoord, $ycoord, 0, 0, imagesx($im2), imagesy($im2));
imagejpeg($im, 'maps/'.$newmap, 100);
imagedestroy($im);
imagedestroy($im2);

缩略图已经存在,并且所有小图像都保存为1.jpg,2.jpg,3.jpg等。

所以,总结一下: 如何在单个图像上放置多个具有数据库中指定坐标的图像?

欢迎所有建议!

这是带有单个缩略图的地图的预览: Map of building with single thumbnail

1 个答案:

答案 0 :(得分:4)

在达伦的帮助下,他终于成功了!我可以再次入睡:)

<?php
$coords = array
   (
   array("2","100","200"),
   array("3","200","100"),
   array("4","250","30"),
   array("5","134","90")
   );
$arrlength = count($coords);

$map = "Project2.jpg";

for($x = 0; $x < $arrlength; $x++) {
    addThumb($map, $coords[$x][0], $coords[$x][1], $coords[$x][2]);
}

function addThumb($map, $thumb, $xcoord, $ycoord)
{ 
 $thumb .= ".jpg";
 $imMap = imagecreatefromjpeg('maps/'.$map);
 $imThumb = imagecreatefromjpeg('thumbnails/'.$thumb);
 imagecopy($imMap, $imThumb, $xcoord, $ycoord, 0, 0, imagesx($imThumb), imagesy($imThumb));
 imagejpeg($imMap, 'maps/'.$map, 100);
 imagedestroy($imMap);
 imagedestroy($imThumb);
}
?>