【发布时间】:2015-02-05 05:40:35
【问题描述】:
我有一张不透明的图片:
当我尝试加载它时:
$img = imagecreatefrompng('cheek-01.png');
header('Content-Type: image/png');
imagepng($img);
它会变成:
我想将此图像与另一个图像添加(合并)(我知道如何合并两个 png 图像)。
有什么问题,如何使用GD 库加载它而不丢失不透明度?
更新
我的目标是合并一些图像,其中一些具有 alpha(不同的不透明度,如上图),但是当我合并它们时,alpha 信息会丢失。
<?php
$background = imagecreatetruecolor(3508, 2480);
// set background to white
$white = imagecolorallocate($background, 255, 255, 255);
imagefill($background, 0, 0, $white);
$dest = $background;
$items = array(
'cloth-1763-1249' => 'cloth-01.png',
'skin-167-59' => "skin-01.png",
'cheek-2247-1193' => 'cheek-09.png',
'hair-167-59' => 'hair-07.png'
);
foreach ($items as $i => $item) {
$src = imagecreatefrompng($item);
imagealphablending($src, true);
imagesavealpha($src, true);
imagecolortransparent($src, 2130706432);
$src_x = imagesx($src);
$src_y = imagesy($src);
$list = explode('-', $i);
//var_dump($list);
imagecopymerge($dest, $src, intval($list[1]), intval($list[2]), 0, 0, $src_x, $src_y, 100);
imagealphablending($dest, true);
imagesavealpha($dest, true);
}
header('Content-Type: image/png');
imagepng($dest);
【问题讨论】:
标签: php png transparency gd alpha-transparency