标签分类 技术文章:
当前位置:首页 > PHP编程文章 > php图片添加水印例子

php给图片添加水印实例代码

  • 发布时间:
  • 作者:码农之家原创
  • 点击:185

这篇文章主要知识点是关于php、图片、添加水印、实例代码、如何使用PHP给图片加水印 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

PHP和MySQL Web开发
PHP和MySQL Web开发中文高清第5版
  • 类型:PHP网站开发大小:27 MB格式:PDF出版:机械工业出版社作者:卢克·韦林
立即下载

更多PHP相关的学习资源可以参阅 PHP电子书程序设计电子书 等栏目。

php图片添加水印例子

图片添加水印我相信各位朋友都知道的,今天我们来看一段php的图片添加水印例子,希望文章能够帮助到各位朋友。

<?php 
  /** 
   * 图片添加水印 
   * $target 源文件路径 
   * $wtrmrk_file 水印图片路径 
   * $newcopy 添加水印后的图片路径 
   * 
   */ 
  public function watermark_image($target, $wtrmrk_file, $newcopy) { 
    $watermark = imagecreatefrompng($wtrmrk_file); 
    imagealphablending($watermark, false); 
    imagesavealpha($watermark, true); 
    $img = imagecreatefromjpeg($target); 
    $img_w = imagesx($img); 
    $img_h = imagesy($img); 
    $wtrmrk_w = imagesx($watermark); 
    $wtrmrk_h = imagesy($watermark); 
    $dst_x = ($img_w ) – ($wtrmrk_w); // For centering the watermark on any image //phpfensi.com 
    $dst_y = ($img_h) – ($wtrmrk_h ); // For centering the watermark on any image 
    imagecopy($img, $watermark, $dst_x, $dst_y, 0, 0, $wtrmrk_w, $wtrmrk_h); 
     
    imagejpeg($img, $newcopy, 100); 
    imagedestroy($img); 
    imagedestroy($watermark); 
    //return $img; 
  } 
?> 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

如何使用PHP给图片加水印

为了防止辛苦做出来的图片被盗用,很多照片都会加上水印,可以直接用图片工具添加水印再上传,但PHP中就可以实现给图片加水印的功能,本文章向码农们介绍 php 给图片加水印的两种方法,感兴趣的码农可以参考一下本文章的源代码。

方法一:PHP最简单的加水印方法

<?php
$img = imagecreatefromjpeg($filename);
$logo = imagecreatefromjpeg($filename);
/*imagecraetefromjpeg-由文件或URL创建一个新图像
imagecreatefromjpeg(string $filename)
如果启用了fopen包装器,URL可以作为文件名*/
imagecopy($img,$logo,15,15,0,0,$width,$height);
/*imagecopy($dst_im,$src_im,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h)
$dst_im是背景图像,就是需要添加水印的图片
$src_im是水印图片;$dst_x,#dst_y需要把水印放到背景图片的(x,y)坐标;
$src_x,$src_y是截取水印的图片的开始坐标
$width,$height是截取的图片的就是水印的长度和宽度*/
$url = 'http://www.stchat.cn/data/attachment/forum/201506/12/100759pidbdaydh8dy7iby.jpg';
$content = file_get_contents($url);//把url写入到content这个变量里面
/*file_get_contents--将整个文件读入到一个字符串*/
$filename = 'tmp.jpg';
file_put_contents($filename,$content);
//把所有内容放到filename这个变量里面,第一个存放的是背景图片
/*file_put_contents(string $filename,mixed $data)将一个字符串写入一个文件
filename要被写入数据的文件名
data要写入的数据,类型可以是string,array或者是stream资源*/
$url = '';
file_put_contents('logo.png',file_get_contents($url));
//第二个是水印的图片
$img = imagecreatefromjpeg($filename);
$logo = imagecreatefrompng('logo.png');
$size = getimagesize('logo.png');
/*getimagesize()获得图像大小*/
imagecopy($img,$logo,15,15,0,0,$size[0],$size[1]);
header("centent-type:image/jpeg");
imagejpeg(img);
?>

方法二:php给图片加文字水印

<?php
/*给图片加文字水印的方法*/
$dst_path = 'http://f4.topitme.com/4/15/11/1166351597fe111154l.jpg';
$dst = imagecreatefromstring(file_get_contents($dst_path));
/*imagecreatefromstring()--从字符串中的图像流新建一个图像,返回一个图像标示符,其表达了从给定字符串得来的图像
图像格式将自动监测,只要php支持jpeg,png,gif,wbmp,gd2.*/
$font = './t1.ttf';
$black = imagecolorallocate($dst, 0, 0, 0);
imagefttext($dst, 20, 0, 10, 30, $black, $font, 'Hello world!');
/*imagefttext($img,$size,$angle,$x,$y,$color,$fontfile,$text)
$img由图像创建函数返回的图像资源
size要使用的水印的字体大小
angle(角度)文字的倾斜角度,如果是0度代表文字从左往右,如果是90度代表从上往下
x,y水印文字的第一个文字的起始位置
color是水印文字的颜色
fontfile,你希望使用truetype字体的路径
http://www.manongjc.com/article/1302.html */
list($dst_w,$dst_h,$dst_type) = getimagesize($dst_path);
/*list(mixed $varname[,mixed $......])--把数组中的值赋给一些变量
像array()一样,这不是真正的函数,而是语言结构,List()用一步操作给一组变量进行赋值*/
/*getimagesize()能获取到什么信息?
getimagesize函数会返回图像的所有信息,包括大小,类型等等*/
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;
 /*imagepng--以PNG格式将图像输出到浏览器或文件
 imagepng()将GD图像流(image)以png格式输出到标注输出(通常为浏览器),或者如果用filename给出了文件名则将其输出到文件*/
}
imagedestroy($dst);
?>

希望本文所述对大家PHP程序设计有所帮助。

以上就是本次给大家分享的关于PHP的全部知识点内容总结,大家还可以在下方相关文章里找到ThinkPHP的模板引擎如何达到、 PHP中的日期时间处理利器、 PHP用户验证和标签推荐的、 等php文章进一步学习,感谢大家的阅读和支持。

上一篇:php中curl实现的股票信息查询的实例详解

下一篇:PHP异常和错误的日志记录用法

展开 +

收起 -

学习笔记
网友NO.562442

php图片添加文字水印实现代码

php类库给现有的图片加文字水印,代码不是很完善,欢迎大家多多指教!代码如下: ?php/*PHP图片加文字水印类库QQ:3697578482 伤心的歌该类库暂时只支持文字水印,位置为右下角,颜色随机调用方法:1、在需要加水印的文件顶部引入类库:include_once 'imageClass.php';2、声明新类:$tpl=new image_fu;3、给图片水印提供参数:$tpl-img(图片路径,水印文字,字体路径,字体大小,字体角度);比如:$tpl-img('abc.jpg','这是水印文字','ziti.ttf',30,0)*/class image_fu{private $image;private $img_info;private $img_width;private $img_height;private $img_im;private $img_text;private $img_ttf='';private $img_new;private $img_text_size;private $img_jd;function img($img='',$txt='',$ttf='',$size=12,$jiaodu=0){if(isset($img)file_exists($img)){//检测图片是否存在$this-image =$img;$this-img_text=$txt;$this-img_text_size=$size;$this-img_jd=$jiaodu;if(file_exists($ttf)){$this-img_ttf=$ttf;}else{exit('字体文件:'.$ttf.'不存在!');}$this-imgyesno();}else{exit('图片文件:'.$img.'不存在');}}private function imgyesno(){$this-img_info =getimagesize($this-image);$this-img_width =$this-img_info[0];//图片宽$this-img_height=$this-img_info[1];//图片高//检测图片类型switch($this-img_info[2]){case 1:$this-img_im = imagecreatefromgif($this-image);break;case 2:$this-img_im = imagecreatefromjpeg($this-image);break;case 3:$this-img_im = imagecreatefrompng($this-image);break;d……

网友NO.897222

PHP实现随机生成水印图片功能

基于PHP的GD图形库,自己生成一张图片。仅限初识GD库,实例学习。 一、需求 网站的布局用到了类似慕课网课程列表的风格,每一个课程是一个banner图,图下面是标题加简介。因为课程的数量较大没有为所有的课程设计专门的banner,所以需要按照一定的规则,来自己生成图片(本打算用div布局来解决,但div+img在响应式布局中不是很好控制)。 生成的效果图: 二、工具 /** @var integer 图片高度 */ public $imgHeight = 162; /** @var 根据type不同来生成不同的背景颜色,目前留个type分别为蓝色、紫色、黄色、绿色、灰色、土黄色 */ public $type = ''; /** @var 图片上要显示的文字 */ public $text = ''; /** @var integer 图片上文字的字体大小 */ public $fontSize = 16; public function __construct($type, $text) { $this-type = $type; $this-text = $text; } /** * 创建生成随机图片 * @author bignerd * @since 2017-03-21T14:49:41+0800 */ public function createImg() { /** @var 创建一个指定图片大小的空调色板 $image = imagecreate($this-imgWidth, $this-imgHeight); $rgb = $this-getBackground($this-type); /** @var 为图片创建一个背景色 */ $backgroundColor = imagecolorallocate($image, $rgb['r'], $rgb['g'], $rgb['b']); /** @var 创建文字白色字体 */ $textColor = imagecolorallocate($image, 255, 255, 255); /** @var 字体文件路径 */ $font = $_SERVER['DOCUMENT_ROOT'].'/public/font/simhei.ttf';……

网友NO.700622

PHP水印类,支持添加图片、文字、填充颜色区域的实现

*自己整理的一个水印类* 支持添加图片、文字、填充颜色区域 ?php/** * 图片加水印类,支持文字水印、透明度设置、自定义水印位置等。 * 使用示例: * $obj = new WaterMask($imgFileName); //实例化对象 * $obj-$waterType = 1; //类型:0为文字水印、1为图片水印 * $obj-$transparent = 45; //水印透明度 * $obj-$waterStr = 'icp.niufee.com'; //水印文字 * $obj-$fontSize = 18; //文字字体大小 * $obj-$fontColor = array(255,255,255); //水印文字颜色(RGB) * $obj-$fontFile = 'AHGBold.ttf'; //字体文件 * …… * $obj-output(); //输出水印图片文件覆盖到输入的图片文件 * @modify liuzp111 */class WaterMask{ public $waterTypeImage = false; //水印类型:启用图片水印 public $waterTypeStr = false; //水印类型:启用文字水印 public $pos = 0; //水印位置 public $transparent = 45; //水印透明度(0---100)数值越大越不透明 public $waterStr = 'icp.niufee.com'; //水印文字 public $fontSize = 14; //文字字体大小 public $fontColor = array(0,0,0); //水印文字颜色(RGB) 默认黑色 public $fontFile = './font/simfang.ttf'; //字体文件 public $waterImg = 'logo.png'; //水印图片 private $srcImg = ''; //需要添加水印的图片 private $im = ''; //图片句柄 private $water_im = ''; //水印图片句柄 private $srcImg_info = ''; //图片信息 private $waterImg_info = ''; //水印图片信息 private $str_w = ''; //水印文字宽度 private $str_h……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明