<小田吃饺子> PHP:GD库 图片水印处理

<?php
/**
 * 处理图片类
 * 1.添加文字水印
 * 2.添加图片水印
 * 3.压缩图片
 */
class TL_Image{
	private $image;//内存中的图片
	private $info;//图片的基本信息
	/**
	 * 打开一张图片,读取到内存
	 * @param [type] $src [description] 图片路径
	 */
	public function __construct($src){
		$info = getimagesize($src);
		$this->info = array(
			‘width‘ => $info[0],
			‘height‘ => $info[1],
			‘type‘ => image_type_to_extension($info[‘2‘],false),
			‘mime‘ => $info[‘mime‘],
		);
		$fun = "imagecreatefrom{$this->info[‘type‘]}";
		$this->image = $fun($src);
	}
	/**
	 * 操作图片(压缩)
	 * @param  [type] $width  [description] 宽
	 * @param  [type] $height [description] 高
	 * @return [type]         [description]
	 */
	public function thumb($width,$height){
		$image_thumb = imagecreatetruecolor($width,$height);
		imagecopyresampled($image_thumb, $this->image, 0, 0, 0, 0, $width, $height, $this->info[‘width‘], $this->info[‘height‘]);
		imagedestroy($this->image);
		$this->image = $image_thumb;
	}
	/**
	 * 操作图片(添加文字水印)
	 * [fontMark description]
	 * @param  [type] $content  [description] 设置文字
	 * @param  [type] $font_url [description] 字体文件路径
	 * @param  [type] $size     [description] 字体大小
	 * @param  [type] $color    [description] 字体颜色 []
	 * @param  [type] $local    [description] 位置 []
	 * @param  [type] $angle    [description] 旋转
	 * @return [type]           [description]
	 */
	public function fontMark($content,$font_url,$size,$color,$local,$angle){
		$col = imagecolorallocatealpha($this->image,$color[0],$color[1],$color[2],$color[3]);
		imagettftext($this->image, $size, $angle, $local[‘x‘], $local[‘y‘], $col, $font_url, $content);
	}
	/**
	 * 操作图片(添加图片水印)
	 * @param  [type] $source [description] 水印图片路径
	 * @param  [type] $local  [description] 位置 []
	 * @param  [type] $alpha  [description] 透明
	 * @return [type]         [description]
	 */
	public function imageMark($source,$local,$alpha){
		$info2 = getimagesize($source);
		$type2 = image_type_to_extension($info2[2],false);
		$fun2 = "imagecreatefrom{$type2}";
		$water = $fun2($source);
		imagecopymerge($this->image, $water,  $local[‘x‘],  $local[‘y‘], 0, 0, $info2[0], $info2[1], $alpha);
		imagedestroy($water);
	}
	/**
	 * 浏览器输出图片
	 */
	public function show(){
		header("Content-Type:" . $this->info[‘mime‘]);
		$funs = "image{$this->info[‘type‘]}";
		$funs($this->image);
	}
	/**
	 * 保存图片
	 * @param  [type] $newname [description] 保存之后的名字
	 * @return [type]      	   [description]
	 */
	public function save($srcs){
		$funs = "image{$this->info[‘type‘]}";
		$funs($this->image,$srcs);
		//move_uploaded_file($this->image, $srcs);
	}
	/**
	 * 销毁图片
	 */
	public function __destruct(){
		imagedestroy($this->image);
	}
}

  

时间: 2024-10-11 06:01:18

<小田吃饺子> PHP:GD库 图片水印处理的相关文章

&lt;小田吃饺子&gt; PHP:现有图片验证码类

<?php class TL_Captcha_img{ private $image; //验证码图片 private $captch_code; //验证码信息 public function __construct($table){ session_start(); if(is_array($table)){ $index = rand(0,count($table)-1); //获取随机的value $table1 = array_keys($table); $value = $table

&lt;小田吃饺子&gt; PHP:图片上传

<?php class TL_Update_File{ private $file = null;//接受图片名称 private $files = [];//图片属性 public $size = null;//上传文件大小限制 public $save_path = null;//保存路径 public $mime = null;//文件上传支持类型 private $error = null;//图片不符合要求者 //接受图片 function __construct($file=null

&lt;小田吃饺子&gt; docker:安装

文章来源:http://www.cnblogs.com/hello-tl/p/8901132.html 0.卸载旧版本 # yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine 1.安装所需包 # yum i

&lt;小田吃饺子&gt; LINUX:Contos7.0 / 7.2 LAMP+R 下载安装Php篇

更新时间:2017-09-21 16:03 简介 LAMP+R指Linux+Apache+Mysql+PHP+Redis是一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台. Apache 安装篇 Demo地址:http://www.cnblogs.com/hello-tl/articles/7568803.html Php 安装篇 Demo地址:http://www.cnblogs.com

&lt;小田吃饺子&gt; LINUX:Contos7.0 / 7.2 LAMP+R 下载安装Redis篇

更新时间:2017-09-21 15:38 简介 LAMP+R指Linux+Apache+Mysql+PHP+Redis是一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台. Apache 安装篇 Demo地址:http://www.cnblogs.com/hello-tl/articles/7568803.html Php 安装篇 Demo地址:http://www.cnblogs.com

&lt;小田吃饺子&gt; PHP:Mysql基础类

<?php /** * __construct($Mysql_config) 构造函数 $Mysql_config['server']服务器-$Mysql_config['user']用户名-$Mysql_config['pwd']密码-$Mysql_config['name']数据库名字-$Mysql_config['character']字符集 * Mysql_alter_drop($table,$name) 删除一个字段 $table表明 $name字段名 * Mysql_alter_ad

&lt;小田吃饺子&gt; PHP:Mysqli 基础类

<?php /** * __construct($Mysql_config) 构造函数 $Mysql_config['server']服务器-$Mysql_config['user']用户名-$Mysql_config['pwd']密码-$Mysql_config['name']数据库名字-$Mysql_config['character']字符集 * Mysql_alter_drop($table,$name) 删除一个字段 $table表明 $name字段名 * Mysql_alter_ad

php笔记之GD库图片创建/简单验证码

燕十八 公益PHP培训 课堂地址:YY频道88354001 学习社区:www.zixue.it php画图:比如说验证码,缩略图,加水印都要用到GD库,所以要开启gd2库,才能用 首先找到php.ini中extension=php_gd2.dll  去掉前边的分号,然后重启apache,创建图片就可以用了 /* 画图的一般步骤: 1.创建画布 2.创建颜料 3.画图或者写字 4.保存 5.销毁资源 */ //创建画布 $img=imagecreatetruecolor(300,200); //创

一次php gd库引发的问题

突然发现用的好好的GD库挂了,于是就在网上找了个代替的,开始的时候没注意下了个64(安装的是32位的)的不能用,于是找个32的也不能用我的版本是5.4.28,网上找好久没找到,最终找了一个31的,发现还是不能用,没办法只好重装了,因为Apache是连接php和mysql的关键所以问题可能出在这里,还好之前下载的Apache还在版本为2.2.25,于是就配置31来安装,首选卸载Apache,卸载完把剩余的文件夹删除,最好重启一下机器,开始安装,一路回车,非常幸运没出现问题,默认Apache启用的是