亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

圖片添加水印

1,準備工作,添加水印功能

<?php
function watermark($source,$water,$postion=4,$path=''){
    //設(shè)置水印圖片名稱前綴
    $waterPrefix='water_';
    //圖片類型和對應創(chuàng)建畫布資源的函數(shù)名
    $from=array(
        'image/gif'=>'imagecreatefromgif',
        'image/png'=>'imagecreatefrompng',
        'image/jpeg'=>'imagecreatefromjpeg',
    );
    //圖片類型和對應生成圖片的函數(shù)名
    $to=array(
        'image/gif'=>'imagegif',
        'image/png'=>'imagepng',
        'image/jpeg'=>'imagejpeg',
    );}

2,獲取圖片信息

<?php
//獲取原圖和 水印圖片信息數(shù)組
$src_info=getimagesize($source);
$water_info=getimagesize($water);
//從數(shù)組中獲取原圖和水印圖片的寬和高
list($src_w,$src_h,$src_mime)=$src_info;
list($wat_w,$wat_h,$wat_mime)=$water_info;
//獲取各圖片對應的創(chuàng)建畫布函數(shù)名
$src_create_fname=$from[$src_info['mime']];
$wat_create_fname=$from[$water_info['mime']];
//使用可變函數(shù)來創(chuàng)建畫布資源
$src_img=$src_create_fname($source);
$wat_img=$wat_create_fname($water);

3,設(shè)置水印位置

<?php
//水印位置
switch($postion){
    case 1://左上
        $src_x=0;
        $src_y=0;
        break;
    case 2://右上
        $src_x=$src_w-$wat_w;
        $src_y=0;
        break;
    case 3://中間
        $src_x=($src_w-$wat_w)/2;
        $src_y=($src_h-$wat_h)/2;
        break;
    case 4://左下
        $src_x=0;
        $src_y=$src_h-$wat_h;
        break;
    default ://右下
        $src_x=$src_w-$wat_w;
        $src_y=$src_h-$wat_h;
        break;
}

4,添加水印

<?php
//添加水印
/**
 * @param resource $src_img 原圖像資源
 * @param resource $wat_img 水印圖像資源
 * @param int $src_x 水印圖片在原圖像中的橫坐標
 * @param int $src_y 水印圖片在原圖像中的縱坐標
 * @param int $wat_w 水印圖片的寬
 * @param int $wat_h 水印圖片的高
 */
imagecopy($src_img,$wat_img,$src_x,$src_y,0,0,$wat_w,$wat_h);

5,輸出添加水印后的圖片到指定目錄中

<?php
//生成帶水印的圖片路徑
$waterfile=$path.$waterPrefix.$source;
//獲取輸出圖片格式的函數(shù)名
$generate_fname=$to[$src_info['mime']];
//判斷將添加水印后的圖片輸出到指定目錄是否正確
if($generate_fname($src_img,$waterfile)){
    //有條理地輸出原圖像與加水印后的圖像
    echo "<table><tr><th>為圖片添加水印</th></tr>";
    echo "<tr><td>原圖像:</td><td><img src='".$source."'/></td></tr>";
    echo "<tr><td>加水印后:</td><td><img src='".$waterfile."'/></td></tr></table>";
}else{
    echo "輸出水印圖片到指定目錄出錯";
    return false;
}

6,調(diào)用函數(shù)

<?php
//使用變量保存原圖片與水印圖片路徑
$source='test.jpg';
$water='C:\Users\Administrator\Desktop.png';
//調(diào)用函數(shù),顯示原圖與添加水印后的圖片
watermark($source,$water);

全部代碼展示:

watermark.php:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/2/28 0028
 * Time: 下午 4:37
 */
function watermark($source,$water,$postion=4,$path=''){
    //設(shè)置水印圖片名稱前綴
    $waterPrefix='water_';
    //圖片類型和對應創(chuàng)建畫布資源的函數(shù)名
    $from=array(
        'image/gif'=>'imagecreatefromgif',
        'image/png'=>'imagecreatefrompng',
        'image/jpeg'=>'imagecreatefromjpeg',
    );
    //圖片類型和對應生成圖片的函數(shù)名
    $to=array(
        'image/gif'=>'imagegif',
        'image/png'=>'imagepng',
        'image/jpeg'=>'imagejpeg',
    );
    //獲取原圖和 水印圖片信息數(shù)組
    $src_info=getimagesize($source);
    $water_info=getimagesize($water);
    //從數(shù)組中獲取原圖和水印圖片的寬和高
    list($src_w,$src_h,$src_mime)=$src_info;
    list($wat_w,$wat_h,$wat_mime)=$water_info;
    //獲取各圖片對應的創(chuàng)建畫布函數(shù)名
    $src_create_fname=$from[$src_info['mime']];
    $wat_create_fname=$from[$water_info['mime']];
    //使用可變函數(shù)來創(chuàng)建畫布資源
    $src_img=$src_create_fname($source);
    $wat_img=$wat_create_fname($water);
    //水印位置
    switch($postion){
        case 1://左上
            $src_x=0;
            $src_y=0;
            break;
        case 2://右上
            $src_x=$src_w-$wat_w;
            $src_y=0;
            break;
        case 3://中間
            $src_x=($src_w-$wat_w)/2;
            $src_y=($src_h-$wat_h)/2;
            break;
        case 4://左下
            $src_x=0;
            $src_y=$src_h-$wat_h;
            break;
        default ://右下
            $src_x=$src_w-$wat_w;
            $src_y=$src_h-$wat_h;
            break;
    }
    //添加水印
    /**
     * @param resource $src_img 原圖像資源
     * @param resource $wat_img 水印圖像資源
     * @param int $src_x 水印圖片在原圖像中的橫坐標
     * @param int $src_y 水印圖片在原圖像中的縱坐標
     * @param int $wat_w 水印圖片的寬
     * @param int $wat_h 水印圖片的高
     */
    imagecopy($src_img,$wat_img,$src_x,$src_y,0,0,$wat_w,$wat_h);
    //生成帶水印的圖片路徑
    $waterfile=$path.$waterPrefix.$source;
    //獲取輸出圖片格式的函數(shù)名
    $generate_fname=$to[$src_info['mime']];
    //判斷將添加水印后的圖片輸出到指定目錄是否正確
    if($generate_fname($src_img,$waterfile)){
        //有條理地輸出原圖像與加水印后的圖像
        echo "<table><tr><th>為圖片添加水印</th></tr>";
        echo "<tr><td>原圖像:</td><td><img src='".$source."'/></td></tr>";
        echo "<tr><td>加水印后:</td><td><img src='".$waterfile."'/></td></tr></table>";
    }else{
        echo "輸出水印圖片到指定目錄出錯";
        return false;
    }
}
//使用變量保存原圖片與水印圖片路徑
$source='test.jpg';
$water='C:\Users\Administrator\Desktop.png';
//調(diào)用函數(shù),顯示原圖與添加水印后的圖片
watermark($source,$water);
?>

效果展示:

微信圖片_20180301090151.png


思考題:如何設(shè)置半透明水印和文字水印呢?(下一節(jié)將給大家介紹)


繼續(xù)學習
||
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/2/28 0028 * Time: 下午 4:37 */ function watermark($source,$water,$postion=4,$path=''){ //設(shè)置水印圖片名稱前綴 $waterPrefix='water_'; //圖片類型和對應創(chuàng)建畫布資源的函數(shù)名 $from=array( 'image/gif'=>'imagecreatefromgif', 'image/png'=>'imagecreatefrompng', 'image/jpeg'=>'imagecreatefromjpeg', ); //圖片類型和對應生成圖片的函數(shù)名 $to=array( 'image/gif'=>'imagegif', 'image/png'=>'imagepng', 'image/jpeg'=>'imagejpeg', ); //獲取原圖和 水印圖片信息數(shù)組 $src_info=getimagesize($source); $water_info=getimagesize($water); //從數(shù)組中獲取原圖和水印圖片的寬和高 list($src_w,$src_h,$src_mime)=$src_info; list($wat_w,$wat_h,$wat_mime)=$water_info; //獲取各圖片對應的創(chuàng)建畫布函數(shù)名 $src_create_fname=$from[$src_info['mime']]; $wat_create_fname=$from[$water_info['mime']]; //使用可變函數(shù)來創(chuàng)建畫布資源 $src_img=$src_create_fname($source); $wat_img=$wat_create_fname($water); //水印位置 switch($postion){ case 1://左上 $src_x=0; $src_y=0; break; case 2://右上 $src_x=$src_w-$wat_w; $src_y=0; break; case 3://中間 $src_x=($src_w-$wat_w)/2; $src_y=($src_h-$wat_h)/2; break; case 4://左下 $src_x=0; $src_y=$src_h-$wat_h; break; default ://右下 $src_x=$src_w-$wat_w; $src_y=$src_h-$wat_h; break; } //添加水印 /** * @param resource $src_img 原圖像資源 * @param resource $wat_img 水印圖像資源 * @param int $src_x 水印圖片在原圖像中的橫坐標 * @param int $src_y 水印圖片在原圖像中的縱坐標 * @param int $wat_w 水印圖片的寬 * @param int $wat_h 水印圖片的高 */ imagecopy($src_img,$wat_img,$src_x,$src_y,0,0,$wat_w,$wat_h); //生成帶水印的圖片路徑 $waterfile=$path.$waterPrefix.$source; //獲取輸出圖片格式的函數(shù)名 $generate_fname=$to[$src_info['mime']]; //判斷將添加水印后的圖片輸出到指定目錄是否正確 if($generate_fname($src_img,$waterfile)){ //有條理地輸出原圖像與加水印后的圖像 echo "<table><tr><th>為圖片添加水印</th></tr>"; echo "<tr><td>原圖像:</td><td><img src='".$source."'/></td></tr>"; echo "<tr><td>加水印后:</td><td><img src='".$waterfile."'/></td></tr></table>"; }else{ echo "輸出水印圖片到指定目錄出錯"; return false; } } //使用變量保存原圖片與水印圖片路徑 $source='test.jpg'; $water='C:\Users\Administrator\Desktop\2.png'; //調(diào)用函數(shù),顯示原圖與添加水印后的圖片 watermark($source,$water); ?>
提交重置代碼