0

ImageCopyMerge 似乎只处理底部图像?

作为试验,我正在尝试叠加和偏移白色和蓝色图像

$dest = '../images/pictures/white.gif';
$src = '../images/pictures/blue.gif';
imagecopymerge($dest, $src, 12, 65, 0, 0, 175, 260, 50);
imagegif($dest);
imagedestroy($dest);
imagedestroy($src);

然后稍后在 HTML 中显示输出

<img src="<?php echo($dest); ?>" />

我究竟做错了什么?

4

2 回答 2

1

这样做,您正在破坏图像并在此之后使用,因为它没有出现。

<?php
$dest = '../images/pictures/white.gif';
$src = '../images/pictures/blue.gif';
imagecopymerge($dest, $src, 12, 65, 0, 0, 175, 260, 50);
imagegif($dest);
?>
<img src="<?php echo $dest; ?>" />   // your html code
<?php
imagedestroy($dest);
imagedestroy($src);
于 2012-10-10T10:37:25.227 回答
1

要处理您的图像,首先需要使用这些imagecreatefrom*函数将图像加载到 RAM 中。

$dest = imagecreatefromgif(''../images/pictures/white.gif');
$src = imagecreatefromgif('../images/pictures/blue.gif');

以下也不起作用。

<img src="<?php echo($dest); ?>" />

您要么需要链接到调用该imagegif()函数的 php 脚本

<img src="your/script.php" />

或者您需要将图像数据转换为数据 URL(但如果图像很大,我不建议这样做)。

ob_start();
imagegif($dest);
$imagedata = ob_get_contents();
ob_end_clean();
echo '<img src="data:image/png;base64,"' . base64($imagedata) . '" />';
于 2012-10-10T10:39:22.870 回答