Heim  >  Artikel  >  Backend-Entwicklung  >  Wasserzeichen mit PHP erstellen

Wasserzeichen mit PHP erstellen

不言
不言Original
2018-04-14 15:26:331769Durchsuche

Dieser Artikel stellt hauptsächlich PHP zum Erstellen von Wasserzeichen vor, was einen gewissen Referenzwert hat. Jetzt können Freunde in Not darauf verweisen.

Fügen Sie Textwasserzeichen mit der Funktion imagefttext hinzu

<?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. Verwenden Sie die Imagecopymerge-Funktion für Bildwasserzeichen

<?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);?>
Verwandte Empfehlungen:

Detaillierte Schritte zum Erstellen einer Sitzung in PHP

So erstellen oder exportieren Sie Excel-Datentabellen mit PHP

So erstellen Sie transparente PNG-Bilder mit PHP

Das obige ist der detaillierte Inhalt vonWasserzeichen mit PHP erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn