【问题标题】:How to merge two PNGs (one with transparency)?如何合并两个PNG(一个具有透明度)?
【发布时间】:2019-08-13 07:14:30
【问题描述】:

我希望能够从个人资料图片中创建一个图像,并在其上叠加另一个图像。

(我要叠加的图片)

头像有不同的宽度和高度,我想让 PHP 脚本在头像上“拉伸”banned.png,具体取决于头像的大小。

这是我目前用于创建新图像以将个人资料图片设为灰度的脚本:

function ImageToGreyscale($imagepath, $username){
$image_1_file = $imagepath.$username.'.png';    
$image_2_file = $imagepath.'/scripting/banned.png';
$image_1_size = getimagesize($image_1_file);
$image_1_w = $image_1_size[0];
$image_1_h = $image_1_size[1];
$image_1 = imagecreatefrompng($image_1_file);
$image_2 = imagecreatefrompng($image_2_file);
imagealphablending($image_1, true);
imagesavealpha($image_1, true);
imagefilter($image_1, IMG_FILTER_GRAYSCALE);
imagecopy($image_1, $image_2, 0, 0, 0, 0, $image_1_w, $image_1_h);
imagepng($image_1, $imagepath.$username.'_banned.png');
imagedestroy($image_1);

}

我想在上面加上红色的“Banned”。

这就是我想要的结果:

(原创)

(已编辑)

你能帮我解决这个问题吗?

【问题讨论】:

标签: php image merge grayscale


【解决方案1】:

是的,这可行,但您可以根据需要检查和调整坐标。

$image_1 = imagecreatefrompng('girl.png');
$image_2 = imagecreatefrompng('banned.png');
imagealphablending($image_1, true);
imagesavealpha($image_1, true);
imagecopy($image_1, $image_2, 100, 100, 100, 100, 100, 100);
imagepng($image_1, 'image_3.png');
imagedestroy($image_1);

输出 1

答案 2 如预期的输出,可以尝试使用其他图像

$image_1_file = 'girl.png';    
$image_2_file = 'banned.png';
$image_1_size = getimagesize($image_1_file);
$image_2_size = getimagesize($image_2_file);
$image_1_w = $image_1_size[0];
$image_1_h = $image_1_size[1];
$image_1 = imagecreatefrompng($image_1_file);
$image_2 = imagecreatefrompng($image_2_file);
imagealphablending($image_1, true);
imagesavealpha($image_1, true);
imagefilter($image_1, IMG_FILTER_GRAYSCALE);
imagecopyresampled($image_1, $image_2, 0, 0, 0, 0, $image_1_w, $image_1_h, $image_2_size[0], $image_2_size[1]);
imagepng($image_1,'girl_banned.png');

输出 2

【讨论】:

  • 我不确定,但我做错了什么,我相信。这是我目前的结果:i.imgur.com/GYSx9xc.png我已经用我的新代码更新了主帖
  • 检查编辑的答案,现在我按预期更改并检查其他图像
猜你喜欢
  • 2011-10-14
  • 2017-04-15
  • 1970-01-01
  • 1970-01-01
  • 2011-11-08
  • 2015-12-27
  • 2012-04-08
  • 2016-05-02
  • 2017-10-16
相关资源
最近更新 更多