首頁  >  文章  >  後端開發  >  PHP創建浮水印

PHP創建浮水印

不言
不言原創
2018-04-14 15:26:331781瀏覽

這篇文章主要介紹了PHP創建浮水印,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

1.文字浮水印添加使用imagefttext 函數

<?php/**
 * 为图片添加文字水印
 * @param  string $dst_path    原图路径
 * @param  string $font_path   字体存放路径
 * @param  string $string_font 欲添加的文字
 */function textwatermark($dst_path,$font_path,$string_font){
    //创建图片的实例
    $dst = imagecreatefromstring(file_get_contents($dst_path));    //添加文字
    $black = imagecolorallocate($dst, 0x00, 0x00, 0x00);
    imagefilledrectangle($dst, 0, 0, 79, 49, 0x0000FF);
    imagefilledrectangle($dst, 9, 9, 70, 40, 0xFFFFFF);
    imagefttext($dst, 13, 0, 20, 20, $black, $font_path, $string_font);    //输出图片
    list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);    switch ($dst_type) {        case 1://IMAGETYPE_GIF
            header(&#39;Content-Type: image/gif&#39;);
            imagegif($dst);            break;        case 2://IMAGETYPE_JPEG
            header(&#39;Content-Type: image/jpeg&#39;);
            imagejpeg($dst);            break;        case 3://IMAGETYPE_PNG
            header(&#39;Content-Type: image/png&#39;);
            imagepng($dst);            break;        default:            break;
    }
    imagedestroy($dst);
}
header(&#39;charset=utf-8&#39;);$dst_path = &#39;./uploads/1.jpg&#39;;//选择的字体需支持中文 arial.ttf不支持中文$font_path = &#39;C:/Windows/Fonts/simhei.ttf&#39;;        
//当文件编码为utf-8时 不需转换 $string_font = &#39;剑liang&#39;;       
textwatermark($dst_path,$font_path,$string_font);?>

2.圖片浮水印使用imagecopymerge 函數

<?php/**
 * 添加图片水印功能
 * @param resource $dst_path 原图路径
 * @param resource $src_path 水印图片路径
 * @param int $pact 水印合并效果,默认为50 
 * @param int $postion 添加水印位置,默认为右下角
 */function watermark($dst_path,$src_path, $pct = 50,$postion = 5){
    //创建图片的实例
    $dst = imagecreatefromstring(file_get_contents($dst_path));    $src = imagecreatefromstring(file_get_contents($src_path));    // 从数组中获取原图和水印图片的宽和高
    list($dst_w, $dst_h) = getimagesize($dst_path);    list($src_w, $src_h) = getimagesize($src_path);    switch ($postion) {       case 1: // 左上
            $src_x = $src_y = 0;                
            break;        case 2: // 右上
            $src_x = $dst_w - $src_w;            $src_y = 0;                        
            break;       case 3: // 中间
           $src_x = ($dst_w - $src_w) / 2;           $src_y = ($dst_h - $src_h) / 2;    
           break;       case 4: // 左下
            $src_x = 0;            $src_y = $dst_h - $src_h;       
            break;       case 5: // 右下
            $src_x = $dst_w - $src_w;            $src_y = $dst_h - $src_h;        
            break;       default:            break;
    }    //将水印图片复制到目标图片上,最后个参数50是设置透明度,这里实现半透明效果
    imagecopymerge($dst, $src, $src_x, $src_y, 0, 0, $src_w, $src_h, $pct);    //如果水印图片本身带透明色,则使用imagecopy方法
    // imagecopy($dst, $src, 10, 10, 0, 0, $src_w, $src_h);

    //输出图片
    list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);    switch ($dst_type) {        case 1://IMAGETYPE_GIF
            header(&#39;Content-Type: image/gif&#39;);
            imagegif($dst);            break;        case 2://IMAGETYPE_JPEG
            header(&#39;Content-Type: image/jpeg&#39;);
            imagejpeg($dst);            break;        case 3://IMAGETYPE_PNG
            header(&#39;Content-Type: image/png&#39;);
            imagepng($dst);            break;        default:            break;
    }
    imagedestroy($dst);
    imagedestroy($src);
}$source = &#39;./uploads/1.jpg&#39;;$water = &#39;./uploads/6.jpg&#39;;
watermark($source, $water, 50, 5);?>

相關推薦:

php建立session方法步奏詳解

PHP建立或匯出Excel資料表的方法

PHP建立透明PNG圖的方法

以上是PHP創建浮水印的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn