好像不行吧。。
读取gif文件的时候系统会自动添加背影的。
不晓得高手们有没有好主意??

解决方案 »

  1.   

    是这样的吗?那到底怎么才能为我N多的图片加个水印/签名呢?请指教!谢谢!不是GD库可以做的吗?
      

  2.   

    <?php
    //读取目标文件
    $im = imageCreatefromjpeg("a.jpg");
    //设定混合模式
    imagealphablending($im, true);
    //读取水印
    $im2 = imagecreatefrompng("2.png");
    //下面是我写的字,可以不看
    $color = imagecolorallocate($im2, 0, 0, 0);
    imagestring($im2, 12, 1, 1, "i love u jingjing", $color);
    //字结束
    //拷贝水印到目标文件
    imagecopy($im, $im2, 5, 5, 0, 0, 250, 40);
    //输出,可以输出到文件里
    imagejpeg($im);imagedestroy($im);
    imagedestroy($im1);
    ?>
    需要注意的是,水印应该是透明的,而且拷贝到目标文件的大小也不能超过它本来的大小(长和宽)。
      

  3.   

    ccterran(iwind) 是不是现在热恋中呵呵
    顶一下
      

  4.   

    如果图片很大,建议不要用GD,
    图片小的话用  ccterran(iwind) 的方法即可实现。
    水印也可以改成透明的gif。$im2 = imagecreatefromgif("2.gif");即可
      

  5.   

    研究好了楼主就贡献一个代码。
    原理就是读取一张图片,在里面用gd写入某些字经由gd生成的水印。
    不过楼上为什么还要读取第二张png图片?
      

  6.   

    <?php
    //读取目标文件
    $im = imageCreatefromjpeg("a.jpg");
    //设定混合模式
    imagealphablending($im, true);
    //读取水印
    $im2 = imagecreatefrompng("2.png");
    //下面是我写的字,可以不看
    $color = imagecolorallocate($im2, 0, 0, 0);
    imagestring($im2, 12, 1, 1, "i love u jingjing", $color);
    //字结束
    //拷贝水印到目标文件
    imagecopy($im, $im2, 5, 5, 0, 0, 250, 40);
    //输出,可以输出到文件里
    imagejpeg($im);imagedestroy($im);
    imagedestroy($im1);
    ?>
    需要注意的是,水印应该是透明的,而且拷贝到目标文件的大小也不能超过它本来的大小(长和宽)。
    这段代码没用啊。还是显示的我的1.jpg那张图片。
      

  7.   

    用imagettftext函数就可以用系统的ttf字库了,可以改观很多
    不过中文字体支持的不多