如何在PHP中使用已重新采样的图像叠加水印(使用GD)?

时间:2010-05-25 04:25:25

标签: php image gd watermark

这是我目前的代码:

define('IMG_WIDTH',  (isset ($_GET['width']))  ? (int) $_GET['width']  : 99);
define('IMG_HEIGHT', (isset ($_GET['height'])) ? (int) $_GET['height'] : 75);

$image      = imagecreatefromjpeg($_GET['image']);
$origWidth  = imagesx($image);
$origHeight = imagesy($image);

$croppedThumb = imagecreatetruecolor(IMG_WIDTH, IMG_HEIGHT);

if ($origWidth > $origHeight)
{
   $leftOffset = ($origWidth - $origHeight) / 2;
   imagecopyresampled($croppedThumb, $image, 0, 0, $leftOffset, 0, IMG_WIDTH, IMG_HEIGHT, $origHeight, $origHeight);
}
else
{
   $topOffset  = ($origHeight - $origWidth) / 2;
   imagecopyresampled($croppedThumb, $image, 0, 0, 0, $topOffset, IMG_WIDTH, IMG_HEIGHT, $origWidth, $origWidth);
}

它基本上需要一个图像并重新调整大小以创建缩略图。它工作得很好。我现在要做的是在右下角添加水印。我已经看到了用于此的imagecopymerge函数...但是,这似乎不允许我提供重新采样的图像作为源。

如何拍摄已修改的图像并添加水印? :/

我想过将图像保存到/ tmp,然后在添加水印后取消链接(),但这看起来有点乱......

1 个答案:

答案 0 :(得分:0)

您可以使用$croppedThumb作为imagecopymerge的第一个参数。您不必先保存图像。