1

我有这张图片: 白色背景的原始图像

我使用 php5 和 gd2 库来实现透明背景,但结果不是我所期望的(您需要深色背景才能看到差异):透明背景

这是我的代码:

$size = getimagesize($img_url);
$img = imagecreatefrompng($img_url);
$im_tc = imagecreatetruecolor($size[0],$size[1]);
imagecopyresampled($im_tc,$img,0,0,0,0,$size[0],$size[1],$size[0],$size[1]);
imagedestroy($img);
$white  = imagecolorallocatealpha($im_tc, 255, 255, 255,127);
imagecolortransparent($im_tc, $white);
imagepng($im_tc,'image.png');

任何帮助,将不胜感激!:)

4

1 回答 1

1

您的原始图像没有透明背景,但您试图通过将所有纯白色像素更改为透明来创建一个。由于文本周围有阴影/发光,这些像素不是很白,也不会变得透明。你有几个选择:

  • 使用图像编辑器(GIMP、Photoshop 等)及其细粒度选择工具对“背景”进行智能选择,然后将其删除。至少,Photoshop 在其魔棒工具上提供了非常有用的选项来选择阈值、羽化等。
  • 选择更多颜色以使“透明”。不只是白色,而是选择所有灰色阴影,减去“.gr”设置的确切颜色。这应该使图像的所有阴影部分也透明,尽管边缘可能不太完美(即:没有羽毛,略呈锯齿状。)
于 2012-04-12T15:24:02.833 回答