登陆帐号 | 注册帐号
当前位置: 主页 >>开发频道 >>语言&工具 >>

PHP给图片添加笔墨或图片水印的实当代码

时间:2017-05-18 14:01来源:互联网 作者:SKY 点击:
偶然上传图片时,必要给图片添加水印,水印一样平常为笔墨或图片logo水印,下面就来看看两种添加要领:笔墨水印和图片水

偶然上传图片时,必要给图片添加水印,水印一样平常为笔墨或图片logo水印,下面就来看看两种添加要领。

一、笔墨水印

笔墨水印就是在图片上加上笔墨,首要行使gd库的imagefttext要领,而且必要字体文件。结果图如下:

$dst_path = 'dst.jpg'

//建设图片的实例 

$dst = imagecreatefromstring(file_get_contents($dst_path)); 

 

//打上笔墨 

$font = './simsun.ttc';//字体路径 

 

$black = imagecolorallocate($dst, 0x00, 0x00, 0x00);//字体颜色 

imagefttext($dst, 13, 0, 20, 20, $black, $font, '快乐编程'); 

//输出图片 

list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path); 

switch ($dst_type) { 

    case 1://GIF 

        header('Content-Type: image/gif'); 

        imagegif($dst); 

        break; 

    case 2://JPG 

        header('Content-Type: image/jpeg'); 

        imagejpeg($dst); 

        break; 

    case 3://PNG 

        header('Content-Type: image/png'); 

        imagepng($dst); 

        break; 

    default

        break; 

imagedestroy($dst);  

新建设一张图片,然后打印笔墨水印:

// imagecreatefromstring 

// imageCreateFromPng  Create a new image from file or URL   建设图片工具 

 

// Create a 300x100 image,新建设一张图片 

$im = imagecreatetruecolor(500, 300); 

 

// set color 

$red = imagecolorallocate($im, 0xFF, 0x00, 0x00); 

$black = imagecolorallocate($im, 0x00, 0x00, 0x00); 

 

// Make the background red 

// function imagefilledrectangle ($image, $x1, $y1, $x2, $y2, $color) {} 

imagefilledrectangle($im, 0, 0, 300, 100, $red); 

 

// Path to our ttf font file 

$font_file = './font/Arial.ttf'

 

 

// imagefttext ($image, $size, $angle, $x, $y, $color, $fontfile, $text, $extrainfo = null ) 

// Draw the text 'PHP Manual' using font size 13 

imagefttext($im, 13, 0, 150, 50, $black, $font_file, 'PHP Manual'); 

 

// Output image to the browser 

header('Content-Type: image/png'); 

 

imagepng($im); 

imagedestroy($im); 

PHP给图片添加文字或图片水印的实今世码

二、图片水印

图片水印就是将一张图片加在其它一张图片上,首要行使gd库的imagecopy和imagecopymerge。

$dst_path = 'myimage.jpg'

$src_path = 'http://www.logodashi.com/FileUpLoad/inspiration/636003768803214440.jpg'

//建设图片的实例 

$dst = imagecreatefromstring(file_get_contents($dst_path)); 

$src = imagecreatefromstring(file_get_contents($src_path)); 

//获取水印图片的宽高 

list($src_w, $src_h) = getimagesize($src_path); 

//将水印图片复制到方针图片上,最后个参数50是配置透明度,这里实现半透明结果 

imagecopymerge($dst, $src, 10, 10, 0, 0, $src_w, $src_h, 30); 

 

//假如水印图片自己带透明色,则行使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://GIF 

        header('Content-Type: image/gif'); 

        imagegif($dst); 

        break; 

    case 2://JPG 

        header('Content-Type: image/jpeg'); 

        imagejpeg($dst); 

        break; 

    case 3://PNG 

        header('Content-Type: image/png'); 

        imagepng($dst); 

        break; 

    default

        break; 

imagedestroy($dst); 

imagedestroy($src);  

结果图:

PHP给图片添加文字或图片水印的实今世码

三、其他有关图像处理赏罚的函数

/* 

 *返回图像的巨细及图像范例 

// Get the size of an image 

$size = getimagesize("?750x956_120"); 

 

print_r($size); 

 

 

// 打印功效 

Array 

    [0] => 750 

    [1] => 956 

    [2] => 2 

    [3] => width="750" height="956" 

    [bits] => 8 

    [channels] => 3 

    [mime] => image/jpeg 

 

*/ 

 

 

/** 

 * imagecopy — 拷贝图像的一部门 

 */ 

 

(责任编辑:SKY)
织梦二维码生成器
------分隔线----------------------------
栏目列表
推荐内容