一个php的图片水印的程序
最近这几天一直在学习PHP的GD函数库,顺便打算写个图片水印的库类,原本打算有图片水印和文字水印两种模式,但一直感觉文字水印比较困难:如何依据文字的大小、字体、字数自动获取文字水印的起始点、高、宽?这个问题还没有想到好的实现方法,所以先贴这个支持图片水印的库类吧。
水印类watermark,主要用于图片水印,能够设置水印的位置(随即、左上、右上、居中、左下、右下(默认)),能设置水印透明度,能有效控制水印图片的输出方式 ,能自由设置水印图片的条件(高宽),另外还支持四种流行的图片模式(无需人工干预操作)。当然0.1版本还有很多不完善的,希望大家能指出。
代码和demo如下:
以下为引用的内容:
<?
/**
* 图象水印库类,目前支持jpg,gif,png,wbmp四种图象格式,支持图象和文字水印两种模式
* 能左右设定水印的位置等
* @author:feifengxlq <许立强feifengxlq#gmail.com>
* @since:2006-10-21
* @version:0.1
* @copyright:http://www.phpobject.net
*-------------------------使用实例----------------------------------------------
* 图象水印:
* demo 1:主要用于测试,输出水印图片
* require_once('../libs/classes/Watermark.class.php');
* $watermark=new watermark('../src/images/photo.jpg');
* $watermark->set('is_output',true);
* $watermark->markpic('../src/images/source.gif');
* demo 2:水印目标图片
* require_once('../libs/classes/Watermark.class.php');
* $watermark=new watermark('../src/images/photo.jpg');
* $watermark->markpic('../src/images/source.gif');//直接在原图象上水印
*/
class Watermark{
var $gdinfo;//当前GD库的信息
var $picpath;//需要水印的图片的路径
var $picinfo;//水印图片的信息
var $min_width=100;//需要加水印图片的最小宽度
var $min_height=30;//最小高度
var $mark_border=10;//水印边距
var $mark_pct=60;//水印透明度
var $errormsg='';//出错信息
var $mark_style=5;//水印位置 0:随即 1:左上 2:右上 3:中间 4:左下 5:右下
var $is_output=false;//是否输出图象
var $image_output_method='imagejpeg';//输出图象的函数
function __construct($picpath){
//检查是否支持GD库
$this->check_gd();
$this->picinfo=$this->get_pic_info($picpath);
$this->picpath=$picpath;
$this->is_necessary();//检查是否需要加水印
}
/**
*使用图片来显示水印
*@param:$picinfo
*@return :
*/
function markpic($picpath,$newpicpath='',$style=0){
if(empty($style))$style=$this->mark_style;
$picim=$this->image_create($this->picinfo);
//获取水印图片的信息
$waterpic=$this->get_pic_info($picpath);
//检查是否适合水印
if(($waterpic['width']+2*$this->mark_border>$this->picinfo['width'])||($waterpic['height']+2*$this->mark_border>$this->picinfo['height'])){
&nb
相关新闻>>
- 发表评论
-
- 最新评论 更多>>