在PHP中将多个图像合并在一起

时间:2013-07-27 23:40:27

标签: php image png

我一直在寻找有关使用PHP处理图像的一些有用提示,因为我对它很新。

我有一个7个图像的文件夹,大小相同; 35 x 75.我想随机选择其中的6个并将它们在x轴上彼此相邻,作为一个图像。

这是我想出的,但我不确定此刻出了什么问题。我之前使用的是PHP,但没有使用任何图像功能。

<?php
header('Content-Type: image/png');

$numbers = array(1, 2, 3, 4, 5, 8, 9);

$random1 = rand(0, 6);
$random2 = rand(0, 6);
$random3 = rand(0, 6);
$random4 = rand(0, 6);
$random5 = rand(0, 6);
$random6 = rand(0, 6);

$newid = array($numbers[$random1], $numbers[$random2], $numbers[$random3], $numbers[$random4], $numbers[$random5], $numbers[$random6]);

$count = 0;
foreach($newid as $imageSrc) {
    $count++;
    $image = imagecreatefrompng("numbers/" . $imageSrc . ".png");
    imagecopymerge($dest, $image, (35*$count), 0, 0, 0, imagesx($image), imagesy($image), 100);
    imagepng($dest);
}

?>

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

imagepng置于循环之外:

<?php
header('Content-Type: image/png');

$numbers = array(1, 2, 3, 4, 5, 8, 9);

shuffle($numbers);
$newid=array_slice($numbers,0,6);

$count = 0;
$dest=imagecreatetruecolor(35*6,75);
foreach($newid as $imageSrc) {

    $image = imagecreatefrompng("numbers/" . $imageSrc . ".png");
    imagecopymerge($dest, $image, (35*$count), 0, 0, 0, imagesx($image), imagesy($image), 100);
    $count++;
}
imagepng($dest);

?>