如何使用 PHP 将透明 PNG 与图像合并?

发布于 2024-08-03 17:51:49 字数 337 浏览 4 评论 0原文

情况是这样的:我有一张 50x50 的小照片。我还有一个 50x50 的小透明图片,其中包含 50x50 图片的框架,所以我基本上想将透明 png 放在图像的顶部,并将这两个图片合并,从而生成最终的第三张图片看起来像这样: http://img245.imageshack.us/i/50x50n.png

注意:我不想仅使用 HTML 来完成此操作(我通过编写一个 javascript 插件将透明 png 放在原始图像之上来实现此目的)。

谢谢。

The situation is this: I have a small 50x50 pic. I also have a small 50x50 transparent picture which contains a frame for the 50x50 pic, so I basically want to put the transparent png on top of the image and merge those two which would lead to a final third picture that looks something like this: http://img245.imageshack.us/i/50x50n.png

Note: I don't want to do this using HTML only (I achieved this by writing a javascript plugin that put the transparent png on top of the original image).

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

往事随风而去 2024-08-10 17:51:49

您可以使用 PHP GD2 库将两个图像合并在一起。

例子:

<?php
 # If you don't know the type of image you are using as your originals.
 $image = imagecreatefromstring(file_get_contents($your_original_image));
 $frame = imagecreatefromstring(file_get_contents($your_frame_image));

 # If you know your originals are of type PNG.
 $image = imagecreatefrompng($your_original_image);
 $frame = imagecreatefrompng($your_frame_image);

 imagecopymerge($image, $frame, 0, 0, 0, 0, 50, 50, 100);

 # Save the image to a file
 imagepng($image, '/path/to/save/image.png');

 # Output straight to the browser.
 imagepng($image);
?>

You can merge the two images together using the PHP GD2 library.

Example:

<?php
 # If you don't know the type of image you are using as your originals.
 $image = imagecreatefromstring(file_get_contents($your_original_image));
 $frame = imagecreatefromstring(file_get_contents($your_frame_image));

 # If you know your originals are of type PNG.
 $image = imagecreatefrompng($your_original_image);
 $frame = imagecreatefrompng($your_frame_image);

 imagecopymerge($image, $frame, 0, 0, 0, 0, 50, 50, 100);

 # Save the image to a file
 imagepng($image, '/path/to/save/image.png');

 # Output straight to the browser.
 imagepng($image);
?>
血之狂魔 2024-08-10 17:51:49

如果您想保持图像上的 PNG 帧透明度,请在 imagecopymerge() 之前添加 imagealphablending($frame,true);

Add imagealphablending($frame,true); before imagecopymerge() if you want to keep PNG frame transparancy over the image.

喵星人汪星人 2024-08-10 17:51:49

您可以使用 ImageMagick :: Composite 来完成此操作。第一个用户贡献的注释应该足以掌握这个概念。

You can do it using ImageMagick :: Composite. The first user contributed note should be enough to grasp the concept.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文