最终工作代码:
$d = getimagesize(TMP.$this->files[0]);
$source_height = $d[0];
$source_width = $d[1];
$this->canvas = imagecreatetruecolor($source_width*count($this->files),$source_height);
imagesavealpha($this->canvas,TRUE);
imagealphablending($this->canvas, false );
$i=0;
foreach($this->files as $f){
$dst_x = $source_width*$i;
$im = imagecreatefrompng(TMP.$f);
imagecopy ( $this->canvas , $im ,
$dst_x ,
$dst_y = 0 ,
$src_x = 0 ,
$src_y = 0 ,
$source_width ,
$source_height);
$i++;
imagepng($im,TMP.$i.".png");
// if($i>3)break;
}
$fn = TMP."stiched_up_$i*$source_width.png";
imagepng($this->canvas,$fn);
// create canvas correct size i.e. count(images)*width
// add each picture in with correct offset i.e. picture_i*width,0
echo basename($fn);