【澳门新浦京娱乐游戏】php给图片加水印

澳门新浦京娱乐游戏 4

给图片增添水印,其实正是把本来的图形和水印增加在一齐,上边作者把多年来照管的资料分享给大家。

这一篇大家来探视那怎样给图片增多水印,其实是把原图片和水印图片合并在联合。

php对图片文件的操作主假使应用GD库扩大。当大家每每使用php对图纸张开操作时,会人之常情封装超级多函数,不然会写太多重复的代码。当有超多对图片的有关函数的时候,大家得以杜撰将那些函数也收拾一下,由此就有了打包成类的主见。

先看文件check_image_addwatermark.php代码

操作图片主要历经八个步骤:

<?php 
//修改图片效果
$db = mysql_connect('localhost','root','Ctrip07185419') or die('can not connect to database');
mysql_select_db('moviesite',$db) or die(mysql_error($db));
//上传文件的路径
$dir = 'D:Seriousphpdevtestimages';
//设置环境变量
putenv('GDFONTPATH='.'C:WindowsFonts');
$font = "arial";

//upload_image.php页面传递过来的参数,如果是上传图片
if($_POST['submit'] == 'Upload')
{
    if($_FILES['uploadfile']['error'] != UPLOAD_ERR_OK)
    {
        switch($_FILES['uploadfile']['error'])
        {
            case UPLOAD_ERR_INI_SIZE:
                die('The uploaded file exceeds the upload_max_filesize directive');
            break;
            case UPLOAD_ERR_FORM_SIZE:
                die('The upload file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form');
            break;
            case UPLOAD_ERR_PARTIAL:
                die('The uploaded file was only partially uploaded');
            break;
            case UPLOAD_ERR_NO_FILE:
                die('No file was uploaded');
            break;
            case UPLOAD_ERR_NO_TMP_DIR:
                die('The server is missing a temporary folder');
            break;    
            case UPLOAD_ERR_CANT_WRITE:
                die('The server fail to write the uploaded file to the disk');
            break;        
            case UPLOAD_ERR_EXTENSION:
                die('The upload stopped by extension');
            break;                
        }
    }
    $image_caption = $_POST['caption'];
    $image_username = $_POST['username'];
    $image_date = date('Y-m-d');
    list($width,$height,$type,$attr) = getimagesize($_FILES['uploadfile']['tmp_name']);
    $error = 'The file you upload is not a supported filetype';
    switch($type)
    {
        case IMAGETYPE_GIF:
            $image = imagecreatefromgif($_FILES['uploadfile']['tmp_name']) or die($error);
        break;
        case IMAGETYPE_JPEG:
            $image = imagecreatefromjpeg($_FILES['uploadfile']['tmp_name']) or die($error);
        break;
        case IMAGETYPE_PNG:
            $image = imagecreatefrompng($_FILES['uploadfile']['tmp_name']) or die($error);
        break;
        default:
        break;
    }
    $query = 'insert into images(image_caption,image_username,image_date) values("'.$image_caption.'" , "'.$image_username.'","'.$image_date.'")';
    $result = mysql_query($query,$db) or die(mysql_error($db));
    $last_id = mysql_insert_id();

    // $imagename = $last_id.'.jpg';
    // imagejpeg($image,$dir.'/'.$imagename);
    // imagedestroy($image);

    $image_id = $last_id;
    imagejpeg($image , $dir.'/'.$image_id.'.jpg');
    imagedestroy($image);
}
else  //如果图片已经上传,则从数据库中取图片名字
{
    $query = 'select image_id,image_caption,image_username,image_date from images where image_id='.$_POST['id'];
    $result = mysql_query($query,$db) or die(mysql_error($db));
    extract(mysql_fetch_assoc($result));
    list($width,$height,$type,$attr) = getimagesize($dir.'/'.$image_id.'.jpg');
}

//如果是保存图片
if($_POST['submit'] == 'Save')
{
    if(isset($_POST['id']) && ctype_digit($_POST['id']) && file_exists($dir.'/'.$_POST['id'].'.jpg'))
    {
        $image = imagecreatefromjpeg($dir.'/'.$_POST['id'].'.jpg');
    }
    else
    {
        die('invalid image specified');
    }
    $effect = (isset($_POST['effect'])) ? $_POST['effect'] : -1;
    switch($effect)
    {
        case IMG_FILTER_NEGATE:
            imagefilter($image , IMG_FILTER_NEGATE);     //将图像中所有颜色反转
        break;
        case IMG_FILTER_GRAYSCALE:
            imagefilter($image , IMG_FILTER_GRAYSCALE);  //将图像转换为灰度的
        break;
        case IMG_FILTER_EMBOSS:
            imagefilter($image , IMG_FILTER_EMBOSS);     //使图像浮雕化
        break;
        case IMG_FILTER_GAUSSIAN_BLUR:
            imagefilter($image , IMG_FILTER_GAUSSIAN_BLUR); //用高斯算法模糊图像
        break;    
    }

    if(isset($_POST['emb_caption']))
    {
        imagettftext($image , 12 , 0 , 20 , 20 , 0 , $font , $image_caption);
    }
    if(isset($_POST['emb_logo']))
    {
        //获取水印图片的尺寸并创建水印
        list($wmk_width , $wmk_height) = getimagesize('images/logo.png');
        $x = ($width-$wmk_width) / 2;
        $y = ($height-$wmk_height)/2;
        $wmk = imagecreatefrompng('images/logo.png');
        //把水印图片和原图片合并在一起
        imagecopymerge($image , $wmk , $x , $y , 0 , 0 , $wmk_width , $wmk_height , 20);
        //清除水印图片
        imagedestroy($wmk);
    }
    imagejpeg($image , $dir.'/'.$_POST['id'].'.jpg' , 100);
    ?>
    <html>
        <head>
            <title>Here is your pic!</title>
        </head>
        <body>
            <h1>Your image has been saved!</h1>
            <img src="images/<?php%20echo%20$_POST['id'];?>.jpg" alt="澳门新浦京娱乐游戏 1" />
        </body>
    </html>
<?php 
}
else
{
?>
    <html>
        <head>
            <title>Here is your pic!</title>
        </head>
        <body>
            <h1>So how does it feel to be famous?</h1>
            <p>Here is the picture you just uploaded to your servers:</p>
            <!--<img src="images/<?php%20echo%20$imagename;?>" alt="澳门新浦京娱乐游戏 2" style="float:left;" />-->
        </body>
    </html>
    <?php
        if($_POST['submit'] == 'Upload')
        {
            $imagename = 'images/'.$image_id.'.jpg';
        }
        else
        {
            $imagename = 'image_effect.php?id='.$image_id.'&e='.$_POST['effect'];
            if(isset($_POST['emb_caption']))
            {
                $imagename .= '&capt='.urlencode($image_caption);
            }
            if(isset($_POST['emb_logo']))
            {
                $imagename .= '&logo=1';
            }
        }
    ?>
    <img src="<?php%20echo%20$imagename;?>" style="float:left;" alt="澳门新浦京娱乐游戏 3" />
    <table>
        <tr>
            <td>Image save as:</td>
            <td><?php $image_id?></td>
        </tr>
        <tr>
            <td>Height:</td>
            <td><?php echo $height;?></td>
        </tr>
        <tr>
            <td>Widht:</td>
            <td><?php echo $width;?></td>
        </tr>
        <tr>
            <td>Upload date:</td>
            <td><?php echo $image_date;?></td>
        </tr>
    </table>
    <p>You may apply a special effect to your image from the list of option below.
    Note:saving an image with any of the filters applied <em>can be undone</em>
    </p>
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
        <div>
            <input type="hidden" name="id" value="<?php echo $image_id;?>"/>
            Filter:<select name="effect" id="">
                <option value="-1">None</option>
                <?php 
                    echo '<option value="'.IMG_FILTER_GRAYSCALE.'" ';
                    if(isset($_POST['effect']) && $_POST['effect'] == IMG_FILTER_GRAYSCALE)
                    {
                        echo 'selected="selected"';
                    }
                    echo ' >Black and white</option>';

                    echo '<option value="'.IMG_FILTER_GAUSSIAN_BLUR.'"';
                    if(isset($_POST['effect']) && $_POST['effect'] == IMG_FILTER_GAUSSIAN_BLUR)
                    {
                        echo ' selected="selected"';
                    }
                    echo '>Blur</option>';

                    echo '<option value="'.IMG_FILTER_EMBOSS.'"';
                    if(isset($_POST['effect']) && $_POST['effect'] == IMG_FILTER_EMBOSS)
                    {
                        echo 'selected="selected"';
                    }
                    echo '>Emboss</option>';

                    echo '<option value="'.IMG_FILTER_NEGATE.'"';
                    if(isset($_POST['effect']) && $_POST['effect'] == IMG_FILTER_NEGATE)
                    {
                        echo 'selected="selected"';
                    }
                    echo '>Negative</option>';
                ?>
            </select><br />
            <?php 
                echo '<input type="checkbox" name="emb_caption"';
                if(isset($_POST['emb_caption']))
                {
                    echo ' checked="checked"';
                }
                echo ' />Embed caption in image?';
                echo '<br />';
                //添加水印选项
                echo '<input type="checkbox" name="emb_logo" ';
                if(isset($_POST['emb_logo']))
                {
                    echo 'checked="checked"';
                }
                echo ' />Embed watermarked logo in image?';
            ?>
            <input type="submit" value="Preview" name="submit" /><br /><br />
            <input type="submit" value="Save" name="submit" />

        </div>
    </form>
<?php 
}
?>

率先步:展开图片

那当中主假设加多水印选项,假若当选增添水印则将logo.png作为水印图片和原本的图样归拢在同步。

其次步:操作图片

在预览文件中增添了相应的逻辑,代码如下:

其三步:输出图片

<?php 
$dir = 'D:Seriousphpdevtestimages';
//设置环境变量
putenv('GDFONTPATH='.'C:WindowsFonts');
$font = "arial";

if(isset($_GET['id']) && ctype_digit($_GET['id']) && file_exists($dir.'/'.$_GET['id'].'.jpg'))
{
    $image = imagecreatefromjpeg($dir.'/'.$_GET['id'].'.jpg');
}
else
{
    die('invalid image specified');
}

$effect = (isset($_GET['e'])) ? $_GET['e'] : -1;

switch($effect)
{
    case IMG_FILTER_NEGATE:
        imagefilter($image , IMG_FILTER_NEGATE);
    break;
    case IMG_FILTER_GRAYSCALE:
        imagefilter($image , IMG_FILTER_GRAYSCALE);
    break;    
    case IMG_FILTER_EMBOSS:
        imagefilter($image , IMG_FILTER_EMBOSS);
    break;    
    case IMG_FILTER_GAUSSIAN_BLUR:
        imagefilter($image , IMG_FILTER_GAUSSIAN_BLUR);
    break;    
}

if(isset($_GET['capt']))
{
    //echo $_GET['capt'];
    imagettftext($image, 12, 0, 20, 20, 0, $font, $_GET['capt']);
}
if(isset($_GET['logo']))
{
    list($widht , $height) = getimagesize($dir.'/'.$_GET['id'].'.jpg');
    list($wmk_width , $wmk_height) = getimagesize('images/logo.png');
    $x = ($widht-$wmk_width) / 2;
    $y = ($height-$wmk_height) / 2;

    $wmk = imagecreatefrompng('images/logo.png');
    imagecopymerge($image , $wmk , $x , $y , 0 , 0 , $wmk_width , $wmk_height , 20);
    imagedestroy($wmk);
}
header('Content-Type:image/jpeg');
imagejpeg($image , '' , 100);

?>

第四步:销毁图片

最终上传的水印图片效果如下:

1,3,4四个步骤每回都要写,每回又都差不离。真正必要扭转的独有操作图片的这一步骤了。操作图片又一再经过1或多少个基本点的GD函数来产生。

澳门新浦京娱乐游戏 4

正文封装类里面包车型客车八种方法,文字水印,图片水印,图片压缩,图片剪切(imagecopyresampled(State of Qatar卡塔尔(قطر‎,其他的常用GD函数便不赘述。

介怀首要的逻辑正是经过 imagecopymerge()方法把三个图片归总在一块形成水印效果。来拜候这一个艺术的办法原型和参数:

直接上代码:

bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int$src_x , int $src_y , int $src_w , int $src_h , int $pct )

php class Image{ private $info; private $image; public $type; public function __construct($src) { $this-info=getimagesize($src); $this-type=image_type_to_extension($this-info['2'],false); $fun="imagecreatefrom{$this-type}"; $this-image=$fun($src); } /** * 文字水印 * @param [type] $font 字体 * @param [type] $content 内容 * @param [type] $size 文字大小 * @param [type] $col 文字颜色 * @param array $location 位置 * @param integer $angle 倾斜角度 * @return [type] */ public function fontMark($font,$content,$size,$col,$location,$angle=0){ $col=imagecolorallocatealpha($this-image, $col['0'], $col['1'], $col['2'],$col['3']); imagettftext($this-image, $size, $angle, $location['0'], $location['1'], $col,$font,$content); } /** * 图片水印 * @param [type] $imageMark 水印图片地址 * @param [type] $dst 水印图片在原图片中的位置 * @param [type] $pct 透明度 * @return [type] */ public function imageMark($imageMark,$dst,$pct){ $info2=getimagesize($imageMark); $type=image_type_to_extension($info2['2'],false); $func2="imagecreatefrom".$type; $water=$func2($imageMark); imagecopymerge($this-image, $water, $dst[0], $dst[1], 0, 0, $info2['0'], $info2['1'], $pct); imagedestroy($water); } /** * 压缩图片 * @param [type] $thumbSize 压缩图片大小 * @return [type] [description] */ public function thumb($thumbSize){ $imageThumb=imagecreatetruecolor($thumbSize[0], $thumbSize[1]); imagecopyresampled($imageThumb, $this-image, 0, 0, 0, 0, $thumbSize[0], $thumbSize[1], $this-info['0'], $this-info['1']); imagedestroy($this-image); $this-image=$imageThumb; } /** * 裁剪图片 * @param [type] $cutSize 裁剪大小 * @param [type] $location 裁剪位置 * @return [type] [description] */ public function cut($cutSize,$location){ $imageCut=imagecreatetruecolor($cutSize[0],$cutSize[1]); imagecopyresampled($imageCut, $this-image, 0, 0, $location[0], $location[1],$cutSize[0],$cutSize[1],$cutSize[0],$cutSize[1]); imagedestroy($this-image); $this-image=$imageCut; } /** * 展现图片 * @return [type] [description] */ public function show(){ header("content-type:".$this-info['mime']); $funn="image".$this-type; $funn($this-image); } /** * 保存图片 * @param [type] $newname 新图片名 * @return [type] [description] */ public function save($newname){ header("content-type:".$this-info['mime']); $funn="image".$this-type; $funn($this-image,$newname.'.'.$this-type); } public function __destruct(){ imagedestroy($this-image); } } 

将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为
src_h 的一某些拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y
的职位上。两图像将依附 pct 来决定统一程度,其值范围从 0 到 100。当 pct =
0 时,实际上什么也没做,当为 100 时对于调色板图像本函数和 imagecopy(卡塔尔(قطر‎完全等同,它对真彩图达成了 阿尔法 透明。

要是还索要此外操作,只须求再往这么些类里面增多就好啊~~

 

给图片加多水印代码:

先看文件check_image_addwatermark.php代码

php //修改图片效果$db = mysql_connect('localhost','root','Ctrip07185419') or die('can not connect to database');mysql_select_db('moviesite',$db) or die(mysql_error($db));//上传文件的路径$dir = 'D:/Serious/phpdev/test/images';//设置环境变量putenv('GDFONTPATH='.'C:/Windows/Fonts');$font = "arial";//upload_image.php页面传递过来的参数,如果是上传图片if($_POST['submit'] == 'Upload'){ if($_FILES['uploadfile']['error'] != UPLOAD_ERR_OK) { switch($_FILES['uploadfile']['error']) { case UPLOAD_ERR_INI_SIZE: die('The uploaded file exceeds the upload_max_filesize directive'); break; case UPLOAD_ERR_FORM_SIZE: die('The upload file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'); break; case UPLOAD_ERR_PARTIAL: die('The uploaded file was only partially uploaded'); break; case UPLOAD_ERR_NO_FILE: die('No file was uploaded'); break; case UPLOAD_ERR_NO_TMP_DIR: die('The server is missing a temporary folder'); break; case UPLOAD_ERR_CANT_WRITE: die('The server fail to write the uploaded file to the disk'); break; case UPLOAD_ERR_EXTENSION: die('The upload stopped by extension'); break; } } $image_caption = $_POST['caption']; $image_username = $_POST['username']; $image_date = date('Y-m-d'); list($width,$height,$type,$attr) = getimagesize($_FILES['uploadfile']['tmp_name']); $error = 'The file you upload is not a supported filetype'; switch($type) { case IMAGETYPE_GIF: $image = imagecreatefromgif($_FILES['uploadfile']['tmp_name']) or die($error); break; case IMAGETYPE_JPEG: $image = imagecreatefromjpeg($_FILES['uploadfile']['tmp_name']) or die($error); break; case IMAGETYPE_PNG: $image = imagecreatefrompng($_FILES['uploadfile']['tmp_name']) or die($error); break; default: break; } $query = 'insert into images(image_caption,image_username,image_date) values("'.$image_caption.'" , "'.$image_username.'","'.$image_date.'")'; $result = mysql_query($query,$db) or die(mysql_error($db)); $last_id = mysql_insert_id(); // $imagename = $last_id.'.jpg'; // imagejpeg($image,$dir.'/'.$imagename); // imagedestroy($image); $image_id = $last_id; imagejpeg($image , $dir.'/'.$image_id.'.jpg'); imagedestroy($image);}else //如果图片已经上传,则从数据库中取图片名字{ $query = 'select image_id,image_caption,image_username,image_date from images where image_id='.$_POST['id']; $result = mysql_query($query,$db) or die(mysql_error($db)); extract(mysql_fetch_assoc($result)); list($width,$height,$type,$attr) = getimagesize($dir.'/'.$image_id.'.jpg');}//如果是保存图片if($_POST['submit'] == 'Save'){ if(isset($_POST['id']) && ctype_digit($_POST['id']) && file_exists($dir.'/'.$_POST['id'].'.jpg')) { $image = imagecreatefromjpeg($dir.'/'.$_POST['id'].'.jpg'); } else { die('invalid image specified'); } $effect = (isset($_POST['effect']))  $_POST['effect'] : -1; switch($effect) { case IMG_FILTER_NEGATE: imagefilter($image , IMG_FILTER_NEGATE); //将图像中所有颜色反转 break; case IMG_FILTER_GRAYSCALE: imagefilter($image , IMG_FILTER_GRAYSCALE); //将图像转换为灰度的 break; case IMG_FILTER_EMBOSS: imagefilter($image , IMG_FILTER_EMBOSS); //使图像浮雕化 break; case IMG_FILTER_GAUSSIAN_BLUR: imagefilter($image , IMG_FILTER_GAUSSIAN_BLUR); //用高斯算法模糊图像 break; } if(isset($_POST['emb_caption'])) { imagettftext($image , 12 , 0 , 20 , 20 , 0 , $font , $image_caption); } if(isset($_POST['emb_logo'])) { //获取水印图片的尺寸并创建水印 list($wmk_width , $wmk_height) = getimagesize('images/logo.png'); $x = ($width-$wmk_width) / 2; $y = ($height-$wmk_height)/2; $wmk = imagecreatefrompng('images/logo.png'); //把水印图片和原图片合并在一起 imagecopymerge($image , $wmk , $x , $y , 0 , 0 , $wmk_width , $wmk_height , 20); //清除水印图片 imagedestroy($wmk); } imagejpeg($image , $dir.'/'.$_POST['id'].'.jpg' , 100);  html head titleHere is your pic!/title /head body h1Your image has been saved!/h1 img src="images/php%20echo%20$_POST['id'];.jpg" alt="澳门新浦京娱乐游戏 5" / /body /htmlphp }else{ html head titleHere is your pic!/title /head body h1So how does it feel to be famous/h1 pHere is the picture you just uploaded to your servers:/p !--img src="images/php%20echo%20$imagename;" alt="澳门新浦京娱乐游戏 6" /-- /body /html php if($_POST['submit'] == 'Upload') { $imagename = 'images/'.$image_id.'.jpg'; } else { $imagename = 'image_effect.phpid='.$image_id.'&e='.$_POST['effect']; if(isset($_POST['emb_caption'])) { $imagename .= '&capt='.urlencode($image_caption); } if(isset($_POST['emb_logo'])) { $imagename .= '&logo=1'; } }  img src="php%20echo%20$imagename;" alt="澳门新浦京娱乐游戏 7" / table tr tdImage save as:/td tdphp $image_id/td /tr tr tdHeight:/td tdphp echo $height;/td /tr tr tdWidht:/td tdphp echo $width;/td /tr tr tdUpload date:/td tdphp echo $image_date;/td /tr /table pYou may apply a special effect to your image from the list of option below. Note:saving an image with any of the filters applied emcan be undone/em /p form action="php echo $_SERVER['PHP_SELF'];" method="post" div input type="hidden" name="id" value="php echo $image_id;"/ Filter:select name="effect"  option value="-1"None/option php echo 'option value="'.IMG_FILTER_GRAYSCALE.'" '; if(isset($_POST['effect']) && $_POST['effect'] == IMG_FILTER_GRAYSCALE) { echo 'selected="selected"'; } echo ' Black and white/option'; echo 'option value="'.IMG_FILTER_GAUSSIAN_BLUR.'"'; if(isset($_POST['effect']) && $_POST['effect'] == IMG_FILTER_GAUSSIAN_BLUR) { echo ' selected="selected"'; } echo 'Blur/option'; echo 'option value="'.IMG_FILTER_EMBOSS.'"'; if(isset($_POST['effect']) && $_POST['effect'] == IMG_FILTER_EMBOSS) { echo 'selected="selected"'; } echo 'Emboss/option'; echo 'option value="'.IMG_FILTER_NEGATE.'"'; if(isset($_POST['effect']) && $_POST['effect'] == IMG_FILTER_NEGATE) { echo 'selected="selected"'; } echo 'Negative/option';  /selectbr / php echo 'input type="checkbox" name="emb_caption"'; if(isset($_POST['emb_caption'])) { echo ' checked="checked"'; } echo ' /Embed caption in image'; echo 'br /'; //添加水印选项 echo 'input type="checkbox" name="emb_logo" '; if(isset($_POST['emb_logo'])) { echo 'checked="checked"'; } echo ' /Embed watermarked logo in image';  input type="submit" value="Preview" name="submit" /br /br / input type="submit" value="Save" name="submit" / /div /formphp }

这中间根本是增添水印选项,若是当选增添水印则将logo.png作为水印图片和原本的图形归拢在协同。

在预览文件中增多了相应的逻辑,代码如下:

php $dir = 'D:/Serious/phpdev/test/images';//设置环境变量putenv('GDFONTPATH='.'C:/Windows/Fonts');$font = "arial";if(isset($_GET['id']) && ctype_digit($_GET['id']) && file_exists($dir.'/'.$_GET['id'].'.jpg')){ $image = imagecreatefromjpeg($dir.'/'.$_GET['id'].'.jpg');}else{ die('invalid image specified');}$effect = (isset($_GET['e']))  $_GET['e'] : -1;switch($effect){ case IMG_FILTER_NEGATE: imagefilter($image , IMG_FILTER_NEGATE); break; case IMG_FILTER_GRAYSCALE: imagefilter($image , IMG_FILTER_GRAYSCALE); break; case IMG_FILTER_EMBOSS: imagefilter($image , IMG_FILTER_EMBOSS); break; case IMG_FILTER_GAUSSIAN_BLUR: imagefilter($image , IMG_FILTER_GAUSSIAN_BLUR); break; }if(isset($_GET['capt'])){ //echo $_GET['capt']; imagettftext($image, 12, 0, 20, 20, 0, $font, $_GET['capt']);}if(isset($_GET['logo'])){ list($widht , $height) = getimagesize($dir.'/'.$_GET['id'].'.jpg'); list($wmk_width , $wmk_height) = getimagesize('images/logo.png'); $x = ($widht-$wmk_width) / 2; $y = ($height-$wmk_height) / 2; $wmk = imagecreatefrompng('images/logo.png'); imagecopymerge($image , $wmk , $x , $y , 0 , 0 , $wmk_width , $wmk_height , 20); imagedestroy($wmk);}header('Content-Type:image/jpeg');imagejpeg($image , '' , 100);

终极上传的水印图片效果如下:

只顾首要的逻辑正是通过 imagecopymerge()
方法把三个图片合併在同盟变成水印效果。来拜望这一个艺术的艺术原型和参数:

bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int$src_x , int $src_y , int $src_w , int $src_h , int $pct )

将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为
src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y
之处上。两图像将依靠 pct 来调控联合程度,其值范围从 0 到 100。当 pct =
0 时,实际上什么也没做,当为 100 时对于调色板图像本函数和 imagecopy(State of Qatar完全等同,它对真彩色图片达成了 阿尔法 透明。

上述内容是本文介绍PHP给图片增加水印 压缩
剪切的封装类的整体内容,希望我们对本文介绍感兴趣。

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图