首页 > php图像处理 > php给图片加文字水印与图片水印代码

php给图片加文字水印与图片水印代码

这款程序给图片加文字水印时是调用 了C:\WINDOWS\Fonts\\SIMHEI.TTF字体,给图片加水印时就可以自定图片,实例代码如下:

<?php
$image->wprint_img(); //执行图片水印
$image->wprint_string(); //执行文字水印
class editimage {
    private $imagefile; //图片文件
    private $smallimg; //水印图片
    private $string; //水印文字
    private $position; //存放位置
    private $dst_x = 600; //原始图片打水印x坐标
    private $dst_y = 0; //原始图片打水印y坐标
    private $str_x = 450;
    private $str_y = 200;
    private $font = "c:windows ontssimhei.ttf"; //原始图片打水印字体路径
    private $imgej; // imagecolorallocate后的变量
    function __get($value) {
        return $this->$value;
    }
    function __set($property, $value) {
        $this->$property = $value;
    }
    /** 
     * 构造函数初始化
     *
     * @param string $imagefile 被上水印的文件
     * @param string $smallimg 水印文件
     * @param string $string 水印文字
     * @param string $position 存放位置
     * @param int $dst_x  被上水印的图片x
     * @param int $dst_y  被上水印的图片y
     */
    function __construct($imagefile, $smallimg = '', $string = '') { //,$position='',$dst_x=0,$dst_y=0
        $this->imagefile = $imagefile;
        $this->smallimg = $smallimg;
        $this->string = $string;
        $this->imgej = $this->imagecreatef($this->imagefile);
    }
    function get_extname($file) { //获取文件的后缀名
        if (file_exists($this->imagefile)) {
            $img = getimagesize($file);
            switch ($img[2]) {
                case "1":
                    return "gif";
                case "2":
                    return "jpg";
                case "3":
                    return "png";
            }
        } else {
            return false;
        }
    }
    function getsize($file, $wh) { //获取图大小. $wh:w获得宽,h获得高
        $image = getimagesize($file);
        if ($wh) {
            switch ($wh) {
                case "w":
                    return $image[0];
                case "h":
                    return $image[1];
            }
        } else {
            return false;
        }
    }
    function imagecreatef($file) { //创建类型
        if ($this->get_extname($file)) {
            switch ($this->get_extname($file)) {
                case "gif":
                    return imagecreatefromgif($file);
                case "jpg":
                    return imagecreatefromjpeg($file);
                case "png":
                    return imagecreatefrompng($file);
            }
        } else {
            echo "文件不存在";
        }
    }
    //水印图片处理
    function wprint_img() {
        if ($this->smallimg) {
            imagecopy($this->imgej, $this->imagecreatef($this->smallimg) , $this->dst_x, $this->dst_y, 0, 0, $this->getsize($this->smallimg, "w") , $this->getsize($this->smallimg, "h"));
        } else {
            return "水印图片不存在!";
        }
    }
    //水印文字处理
    function wprint_string() {
        return imagettftext($this->imgej, 20, 0, $this->str_x, $this->str_y, imagecolorallocate($this->imgej, 200, 200, 200) , $this->font, iconv("gb2312", "utf-8", $this->string));
    }
    function choose_imgouttype() { //输出
        if ($this->position) {
            $this->get_extname($this->imagefile);
            switch ($this->get_extname($this->imagefile)) {
                case "gif":
                    return imagegif($this->imgej, $position);
                case "jpg":
                    return imagejpeg($this->imgej, $this->position);
                case "jpeg":
                    return imagejpeg($this->imgej, $this->position);
                case "png":
                    return imagepng($this->imgej, $position);
            }
        } else {
            switch ($this->get_extname($this->imagefile)) {
                case "gif":
                    return imagegif($this->imgej);
                case "jpg":
                    return imagejpeg($this->imgej);
                case "jpeg":
                    return imagejpeg($this->imgej);
                case "png":
                    return imagepng($this->imgej);
            }
        }
    }
}
//使用方法如下:
$image = new editimage("d90.gif", "hknmtt.png", "我的d90");
$image->wprint_img(); //执行图片水印
$image->wprint_string(); //执行文字水印,开源代码phprm.com
$image->choose_imgouttype();


本文地址:http://www.phprm.com/tuxiang/fs4486.html

转载随意,但请附上文章地址:-)

标签:php图片 php水印 php文字水印

相关文章

发表留言