【发布时间】:2011-03-05 18:57:12
【问题描述】:
我需要创建一个透明图像,然后在保持图像质量的同时将透明 png 组合到其中。
我该怎么做?
imagecreatetruecolor(...);
//processing using imagecopymerge(..);
imagepng(...);
输出黑色背景。
谢谢:)
这是我的实际代码供参考...
$d = getimagesize(TMP.$this->files[0]);
$source_height = $d[0];
$source_width = $d[1];
$this->canvas = imagecreatetruecolor($source_width*count($this->files),$source_height);
imagealphablending($this->canvas, false );
$i=0;
foreach($this->files as $f){
$dst_x = $source_width*$i;
$im = imagecreatefrompng(TMP.$f);
imagecopyresampled ( $this->canvas , $im ,
$dst_x ,
$dst_y = 0 ,
$src_x = 0 ,
$src_y = 0 ,
$source_width ,
$source_height ,
$source_width ,
$source_height);
$i++;
imagepng($im,TMP.$i.".png");
if($i>3)break;
}
$fn = TMP."stiched_up_$i*$source_width.png";
imagesavealpha($this->canvas,TRUE);
imagepng($this->canvas,$fn);
【问题讨论】:
-
几乎,除了从一个 png 图像开始并添加到它,而我需要创建一个 png 图像,然后添加到它。
-
无论您是创建图像,还是添加到现有图像,答案都是一样的。 +1 重复。
标签: php png gd transparent