如何在PHP中使用已重新采样的图像叠加水印(使用GD)? [英] How can I overlay a watermark on an already resampled image in PHP (using GD)?
问题描述
这是我当前的代码:
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
函数...但是,这似乎不允许我提供重新采样的图像作为源。
It basically takes an image and re-sizes it to create a thumbnail. It works quite nicely. What I would like to do now is add a watermark to the bottom right corner. I've seen the imagecopymerge
function used for this... However, that doesn't seem to allow me to supply a resampled image as the source.
如何拍摄已修改的图像并添加水印? :/
How can I take my already modified image and add a watermark? :/
我想过将图像保存到/ tmp然后在我添加水印后取消链接(),但这似乎有点像一团糟...
I've thought of saving the image to /tmp and then unlink()'ing it once I've added the watermark but that seems like a bit of a mess...
推荐答案
您可以使用 $ croppedThumb
作为 imagecopymerge
的第一个参数。您不必先保存图像。
You can use $croppedThumb
as the first argument to imagecopymerge
. You don't have to save the image first.
这篇关于如何在PHP中使用已重新采样的图像叠加水印(使用GD)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!