【问题标题】:PHP: Transparent backgroundPHP:透明背景
【发布时间】:2012-04-15 15:19:42
【问题描述】:
$c = 'johnny-bravo.png'; //transparent bg
$imagesize = getimagesize($c);

$background = imagecreatefrompng('background.png'); //background
$char = imagecreatefrompng($c);

imagealphablending($char, false);
imagesavealpha($char, true);

imagecopymerge($background, $char, 260, 17, 0, 0, $imagesize[0], $imagesize[1], 100);

header('Content-type: image/png');

imagepng($background);
imagedestroy($background);

输出:

http://i.stack.imgur.com/0E7Lz.png

如何为“johnny-bravo”制作透明背景?

【问题讨论】:

  • 不要忘记在 $background 图片上设置 alpha 选项。
  • @MarcB 完成了 "$background" 但仍然是相同的输出

标签: php transparent imagecreatefrompng


【解决方案1】:

使用下面的代码:

$c = 'johnny-bravo.png'; //transparent bg
$imagesize = getimagesize($c);

$tmp = @imagecreatetruecolor( $imagesize[0],  $imagesize[1] );
@imagealphablending( $tmp , false );
@imagesavealpha( $tmp , true );
$background = @imagecreatefrompng('background.png');

@imagecopyresampled( $tmp , $background , 0 , 0 , $imagesize[0] , $imagesize[1] , $imagesize[0] , $imagesize[1] );
$char = @imagecreatefrompng($c);
@imagecopyresampled($tmp , $char, 260, 17, 0, 0, $imagesize[0], $imagesize[1], 100);

header('Content-type: image/png');

imagepng($tmp);
imagedestroy($tmp);

【讨论】:

  • @Daniela Răducanu 测试我编辑的代码
  • @Daniela Răducanu 你必须先创建一个适合你尺寸的图像,然后使用imagealphablending 和imagesavealpha,然后复制两张带有imagecopyresampled 的图像,这是你的解决方案,但是因为我无法访问 php web 服务器,无法给你工作代码
猜你喜欢
  • 2013-02-21
  • 2011-03-08
  • 2015-04-20
  • 2021-09-20
  • 2019-02-07
  • 2020-10-15
  • 2017-06-22
  • 2010-10-20
  • 2011-02-01
相关资源
最近更新 更多