作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试通过 php 制作几个具有背景透明度的 .png 的合成图像,并将生成的图像存储在我的数据库中。我的问题是当我合并图像时图像的透明部分被丢弃。
这是我创建合成图像的代码:
$base = imagecreatefrompng('application/assets/images/vel1_bg.png');
imagealphablending($base, true);
list($baseWidth, $baseHeight, $type, $attr) = getimagesize('application/assets/images/vel1_bg.png');
$user_board_items = $this->config->item('user_board_items');
foreach($array as $key => $value){
$item = imagecreatefrompng('application/assets/images/items/' . $user_board_items[$value[0]] . '.png');
imagealphablending($item, true);
list($width, $height, $type, $attr) = getimagesize('application/assets/images/items/'. $user_board_items[$value[0]] . '.png');
imagecopymerge($base,
$item,
floor(($value[1] / 100) * $baseWidth),
floor(($value[2] / 100) * $baseHeight),
0,
0,
$width,
$height,
100);
imagedestroy($item);
}
//We have to capture the output buffer
ob_start();
imagepng($base);
$baseimg = ob_get_clean();
这会产生这样的图像:
我正在寻找更像这样的东西: (注意透明部分是如何表示的)
最佳答案
不要使用 imagecopymerge() 来合并透明图像。
最好在脚本中使用 imagecopyresampled()。
关于php - 在 PHP 中合并两个带有透明胶片的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6458506/
我是一名优秀的程序员,十分优秀!