将PNG放在PHP中的JPG上

时间:2010-02-15 22:25:25

标签: php image image-processing gd

我想在PHP中执行以下操作:

我有两张图片,一张jpg和一张png。我想将jpg的大小调整为与png相同的大小,然后将png置于顶部。 PNG具有透明度,所以我想保留它,以便jpg显示在下面。

如果有人能提供帮助那就太棒了!

由于

3 个答案:

答案 0 :(得分:43)

<?
$png = imagecreatefrompng('./mark.png');
$jpeg = imagecreatefromjpeg('./image.jpg');

list($width, $height) = getimagesize('./image.jpg');
list($newwidth, $newheight) = getimagesize('./mark.png');
$out = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($out, $jpeg, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagecopyresampled($out, $png, 0, 0, 0, 0, $newwidth, $newheight, $newwidth, $newheight);
imagejpeg($out, 'out.jpg', 100);
?>

答案 1 :(得分:5)

这是我使用

的工作代码
$dest = imagecreatefrompng('mapCanvas.png');
$src = imagecreatefromjpeg('si.jpg');
imagealphablending($dest, false);
imagesavealpha($dest, true);
// Copy and merge
imagecopymerge($dest, $src, 17, 13, 0, 0, 60, 100, 100);

// Output and free from memory
header('Content-Type: image/png');
imagepng($dest);

imagedestroy($dest);
imagedestroy($src);

答案 2 :(得分:3)

以下是将透明水印覆盖到图像上的示例的链接。可能是你的用例,可能是相关的。

http://www.php.net/manual/en/image.examples.merged-watermark.php

还有一种方法可以加载JPG图像,调整图像大小,启用Alpha跟踪以及在GD中导出图像。

雅各