imagecopymerge -- 拷贝并合并图像的一部分
imagecopymerge($sourceImg,$waterImg,$x,$y,0,0,$waterX,$waterY,30);    #合并图像 合并度设置为50 .100为完全合并.相当于把第二个参数里的图像透明到原来的50/100然后贴到第一个参数的图像里
我也是看了别人的例子试验的,不过这个是图片水印调整透明度,文字水印我没看见

解决方案 »

  1.   

    function watermask1($destination,$waterpngfilename,$pos = 'rb',$transparent = 20)// $transparent 设置水印图片的透明值
    {
    // 参数分别是 $destination => 图片地址,
    // $waterpngfilename => 水印图片地址
    // $pos => 水印位置 lt 左上 lb 左下 rt 右上 rb 右下(默认)
    // $transparent => 透明度 默认 20 
    $imagetype = array("1"=>"gif","2"=>"jpeg","3"=>"png","4"=>"wbmp");
    $image_size = getimagesize($destination);
    $iinfo=getimagesize($destination,$iinfo); 
    $f ="imagecreatefrom".$imagetype[$iinfo[2]];
    $simage = $f($destination);
    $imagesize_mask = getimagesize($waterpngfilename);
    $f ="imagecreatefrom".$imagetype[$imagesize_mask[2]];
    $simage1 = $f($waterpngfilename); // 水印文件
    // 合并2个文件
    switch($pos)
    {
    case 'lt':
    imagecopymerge($simage,$simage1,0,0,0,0,$imagesize_mask[0],
    $imagesize_mask[1],$transparent); // 左上
    break;
    case 'lb':
    imagecopymerge($simage,$simage1,0,$image_size[1]-$imagesize_mask[1]
    ,0,0,$imagesize_mask[0],$imagesize_mask[1],$transparent); // 左下
    break;
    case 'rt':
    imagecopymerge($simage,$simage1,$image_size[0]-$imagesize_mask[0], 
    0,0,0,$imagesize_mask[0],$imagesize_mask[1],$transparent); // 右上
    break;
    case 'rb':
    imagecopymerge($simage,$simage1,$image_size[0]-$imagesize_mask[0], 
    $image_size[1]-$imagesize_mask[1],0,0,$imagesize_mask[0],
    $imagesize_mask[1],$transparent); // 右下
    break;
    }
    // 输出
    $f ="image".$imagetype[$iinfo[2]];
    $f($simage,$destination);
    imagedestroy($simage); 
    imagedestroy($simage1);
    }
    echo $transparent;
      

  2.   

    function watermask1($destination,$waterpngfilename,$pos = 'rb',$transparent = 20) //$transparent 设置图片透明度的值 {
    // 参数分别是 $destination => 图片地址,
    // $waterpngfilename => 水印图片地址
    // $pos => 水印位置 lt 左上 lb 左下 rt 右上 rb 右下(默认)
    // $transparent => 透明度 默认 20 
    $imagetype = array("1"=>"gif","2"=>"jpeg","3"=>"png","4"=>"wbmp");
    $image_size = getimagesize($destination);
    $iinfo=getimagesize($destination,$iinfo); 
    $f ="imagecreatefrom".$imagetype[$iinfo[2]];
    $simage = $f($destination);
    $imagesize_mask = getimagesize($waterpngfilename);
    $f ="imagecreatefrom".$imagetype[$imagesize_mask[2]];
    $simage1 = $f($waterpngfilename); // 水印文件
    // 合并2个文件
    switch($pos)
    {
    case 'lt':
    imagecopymerge($simage,$simage1,0,0,0,0,$imagesize_mask[0],
    $imagesize_mask[1],$transparent); // 左上
    break;
    case 'lb':
    imagecopymerge($simage,$simage1,0,$image_size[1]-$imagesize_mask[1]
    ,0,0,$imagesize_mask[0],$imagesize_mask[1],$transparent); // 左下
    break;
    case 'rt':
    imagecopymerge($simage,$simage1,$image_size[0]-$imagesize_mask[0], 
    0,0,0,$imagesize_mask[0],$imagesize_mask[1],$transparent); // 右上
    break;
    case 'rb':
    imagecopymerge($simage,$simage1,$image_size[0]-$imagesize_mask[0], 
    $image_size[1]-$imagesize_mask[1],0,0,$imagesize_mask[0],
    $imagesize_mask[1],$transparent); // 右下
    break;
    }
    // 输出
    $f ="image".$imagetype[$iinfo[2]];
    $f($simage,$destination);
    imagedestroy($simage); 
    imagedestroy($simage1);
    }
    echo $transparent;
      

  3.   

    图片用 imagecopymerge 拷贝
    文字用 imagecolorclosestalpha 设置颜色后书写
      

  4.   

    怪不得楼主问题没人答,这个问题有难度的嘛,其实处理也就是那几个函数,这些问题,Google下有很多事例的。