【问题标题】:Put PNG over a JPG in PHP [duplicate]在PHP中将PNG放在JPG上[重复]
【发布时间】:2011-01-17 04:22:39
【问题描述】:

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

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

如果有人可以提供帮助,那就太好了!

谢谢

【问题讨论】:

  • 查看 PHP 的 GD(或 GD2)库。
  • 我想在woocommerce中实现这一点,有人可以直接
  • 不重复。这是另一种方法。

标签: php image image-processing gd


【解决方案1】:

这是我使用的工作代码

$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);

【讨论】:

  • Thks 工作正常但输出图像有 n 种颜色意味着它输出黑白图像。现在该怎么办。
【解决方案2】:
<?
$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);
?>

【讨论】:

  • 非常感谢!在没有任何想法的情况下第三天陷入类似的合并问题(忘记了以前知道的一切)......拯救了我的灵魂!万分感谢!上帝保佑你!
  • 代码不工作。因为它显示图像未找到图标。
  • 很好的答案,解决方案效果很好。
【解决方案3】:

这是一个示例的链接,该示例将透明水印叠加到图像上。可能是您的用例,可能是相关的。

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

还有一种方法可以在 GD 中加载 JPG 图片、调整图片大小、开启 alpha 跟踪以及导出图片。

雅各布

【讨论】:

    猜你喜欢
    • 2010-11-17
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 2012-12-21
    相关资源
    最近更新 更多