在 PHP GD 中调整 png 大小时将 jpg 与 png 合并(水印)

Posted

技术标签:

【中文标题】在 PHP GD 中调整 png 大小时将 jpg 与 png 合并(水印)【英文标题】:Merging (watermark) a jpg with png while resizing the png in PHP GD 【发布时间】:2010-07-09 11:19:21 【问题描述】:

我确信我能以某种方式解决这个问题,但是因为我不是 php 人,所以我花了很长时间。希望有人可以在几分钟内为我设置好脚本...

所以这是我需要做的: 我将 2 张图片从智能手机传输到网络服务器。这两张图片需要合并(加水印)。它们略有不同:

    图片是 2 兆像素 jpg(拿着照片) 图片将是 480x800 像素的 png,具有透明背景(拿着简单的手指画)

现在我需要合并这些图像。第二个(png)需要缩放到第一个(jpeg)的分辨率。

请注意两点:

    我只能使用安装在服务器上的 GD 库。 Imagick 或类似软件不可用 我很清楚第二张图片的质量不会很出色。没关系。

那么有人可以帮我解决这个问题吗?就像我说的,我一直在搞乱几个 GD 函数,但进展太慢了。我想我用imagecopy 和watermark 找到了所需的功能。但我找不到将它们组合在一起的正确方法。

提前致谢, 强度

谢谢一百万

【问题讨论】:

我通常使用 ImageMagick,但我发现这些 GD 示例可能会有所帮助:Adding watermarks to images using alpha channels、Watermark Images on the Fly in PHP 您是要保留第二张图片的纵横比(即按比例缩放)还是将其扭曲到第一张的分辨率(这样第二张图片就会完全变形)? 【参考方案1】:

几个月前我发布了一个功能,因为代码很大,我将链接我的帖子,查看here。确保您不要只执行此操作,它会使您的服务器超载、保存带水印的图像或至少缓存它们。

如果您还需要调整原图或水印的大小,我还发布了一个功能来做到这一点here。

【讨论】:

两个链接都失效了。

以上是关于在 PHP GD 中调整 png 大小时将 jpg 与 png 合并(水印)的主要内容,如果未能解决你的问题,请参考以下文章

使用gd在php中调整图像大小后的黑色背景

如何使用 GD 调整上传图像的大小并将其转换为 PNG?

PHP GD从创建的PNG修剪透明像素

使用 php Imagick 保留背景调整 PNG 的大小

PHP调整图像大小并保存为透明PNG

在 PHP 中调整 PHP GD 生成的图像的大小并显示它