- 浏览: 203308 次
- 性别:
- 来自: 湖南
文章分类
最新评论
简介摘要:功能:PHP图片水印 (水印支持图片或文字) * 参数: * $groundImage 背景图片,即需要加水印的图片,暂只支持GIF,JPG,PNG格式; * $waterPos
简单测试:imageWaterMark($upload_path.$large_image_name.$_SESSION['user_file_ext'],9,'logo_110x55.jpg','',5,'#ccc','',0,0);
简单测试:imageWaterMark($upload_path.$large_image_name.$_SESSION['user_file_ext'],9,'logo_110x55.jpg','',5,'#ccc','',0,0);
<?PHP /* * 功能:PHP图片水印 (水印支持[zhi chi]图片或文字[wen zi]) * 参数[can shu]: * $groundImage 背景图片,即需要加水印的图片,暂只支持[zhi chi]GIF,JPG,PNG格式; * $waterPos 水印位置[wei zhi],有10种状态[zhuang tai],0为随机位置[wei zhi]; * 1为顶端居左,2为顶端居中,3为顶端居右; * 4为中部居左,5为中部居中,6为中部居右; * 7为底端居左,8为底端居中,9为底端居右; * $waterImage 图片水印,即作为水印的图片,暂只支持[zhi chi]GIF,JPG,PNG格式; * $waterText 文字[wen zi]水印,即把文字[wen zi]作为为水印,支持[zhi chi]ASCII码,不支持[zhi chi]中文[zhong wen]; * $fontSize 文字[wen zi]大小,值为1、2、3、4或5,默认[mo ren]为5; * $textColor 文字[wen zi]颜色,值为十六进制[shi liu jin zhi]颜色值,默认[mo ren]为#CCCCCC(白灰色); * $fontfile ttf字体[zi ti]文件[wen jian],即用来设置[she zhi]文字[wen zi]水印的字体[zi ti]。使用windows的用户[yong hu]在系统[xi tong]盘[xi tong pan]的目录中 * 搜索[sou suo]*.ttf可以得到系统[xi tong]中安装[an zhuang]的字体[zi ti]文件[wen jian],将所要的文件[wen jian]拷到网站[wang zhan]合适的目录中, * 默认[mo ren]是当前目录[dang qian mu lu]下arial.ttf。 * $xOffset 水平偏移量[pian yi liang],即在默认[mo ren]水印坐标值基础上加上这个值,默认[mo ren]为0,如果你想留给水印留 * 出水平方向上的边距,可以设置[she zhi]这个值,如:2 则表示在默认[mo ren]的基础上向右移[you yi]2个单位[dan wei],-2 表示向左移[zuo yi]两单位[dan wei] * $yOffset 垂直偏移量[pian yi liang],即在默认[mo ren]水印坐标值基础上加上这个值,默认[mo ren]为0,如果你想留给水印留 * 出垂直方向上的边距,可以设置[she zhi]这个值,如:2 则表示在默认[mo ren]的基础上向下移2个单位[dan wei],-2 表示向上移两单位[dan wei] * 返回值: * 0 水印成功 * 1 水印图片格式目前不支持[zhi chi] * 2 要水印的背景图片不存在 * 3 需要加水印的图片的长度或宽度比水印图片或文字[wen zi]区域[qu yu]还小,无法生成水印 * 4 字体[zi ti]文件[wen jian]不存在 * 5 水印文字[wen zi]颜色格式不正确 * 6 水印背景图片格式目前不支持[zhi chi] * 修改[xiu gai]记录: * * 注意:Support GD 2.0,Support FreeType、GIF Read、GIF Create、JPG 、PNG * $waterImage 和 $waterText 最好不要同时使用,选其中之一即可,优先使用 $waterImage。 * 当$waterImage有效[you xiao]时,参数[can shu]$waterString、$stringFont、$stringColor均不生效。 * 加水印后的图片的文件[wen jian]名[wen jian ming]和 $groundImage 一样。 * 作者:高西林 * 日期:2007-4-28 * 说明[shuo ming]:本程序根据longware的程序改写而成。 */ function imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterText="",$fontSize=12,$textColor="#CCCCCC", $fontfile='./arial.ttf',$xOffset=0,$yOffset=0) { $isWaterImage = FALSE; //读取[du qu]水印文件[wen jian] if(!empty($waterImage) && file_exists($waterImage)) { $isWaterImage = TRUE; $water_info = getimagesize($waterImage); $water_w = $water_info[0];//取得水印图片的宽 $water_h = $water_info[1];//取得水印图片的高 switch($water_info[2]) { //取得水印图片的格式 case 1:$water_im = imagecreatefromgif($waterImage);break; case 2:$water_im = imagecreatefromjpeg($waterImage);break; case 3:$water_im = imagecreatefrompng($waterImage);break; default:return 1; } } //读取[du qu]背景图片 if(!empty($groundImage) && file_exists($groundImage)) { $ground_info = getimagesize($groundImage); $ground_w = $ground_info[0];//取得背景图片的宽 $ground_h = $ground_info[1];//取得背景图片的高 switch($ground_info[2]) { //取得背景图片的格式 case 1:$ground_im = imagecreatefromgif($groundImage);break; case 2:$ground_im = imagecreatefromjpeg($groundImage);break; case 3:$ground_im = imagecreatefrompng($groundImage);break; default:return 1; } } else { return 2; } //水印位置[wei zhi] if($isWaterImage) { //图片水印 $w = $water_w; $h = $water_h; $label = "图片的"; } else { //文字[wen zi]水印 if(!file_exists($fontfile))return 4; $temp = imagettfbbox($fontSize,0,$fontfile,$waterText);//取得使用 TrueType 字体[zi ti]的文本[wen ben]的范围[fan wei] $w = $temp[2] - $temp[6]; $h = $temp[3] - $temp[7]; unset($temp); } if( ($ground_w < $w) || ($ground_h < $h) ) { return 3; } switch($waterPos) { case 0://随机 $posX = rand(0,($ground_w - $w)); $posY = rand(0,($ground_h - $h)); break; case 1://1为顶端居左 $posX = 0; $posY = 0; break; case 2://2为顶端居中 $posX = ($ground_w - $w) / 2; $posY = 0; break; case 3://3为顶端居右 $posX = $ground_w - $w; $posY = 0; break; case 4://4为中部居左 $posX = 0; $posY = ($ground_h - $h) / 2; break; case 5://5为中部居中 $posX = ($ground_w - $w) / 2; $posY = ($ground_h - $h) / 2; break; case 6://6为中部居右 $posX = $ground_w - $w; $posY = ($ground_h - $h) / 2; break; case 7://7为底端居左 $posX = 0; $posY = $ground_h - $h; break; case 8://8为底端居中 $posX = ($ground_w - $w) / 2; $posY = $ground_h - $h; break; case 9://9为底端居右 $posX = $ground_w - $w; $posY = $ground_h - $h; break; default://随机 $posX = rand(0,($ground_w - $w)); $posY = rand(0,($ground_h - $h)); break; } //设定图像[tu xiang]的混色模式[mo shi] imagealphablending($ground_im, true); if($isWaterImage) { //图片水印 imagecopy($ground_im, $water_im, $posX + $xOffset, $posY + $yOffset, 0, 0, $water_w,$water_h);//拷贝[kao bei]水印到目标[mu biao]文件[wen jian] } else {//文字[wen zi]水印 if( !empty($textColor) && (strlen($textColor)==7) ) { $R = hexdec(substr($textColor,1,2)); $G = hexdec(substr($textColor,3,2)); $B = hexdec(substr($textColor,5)); } else { return 5; } imagettftext ( $ground_im, $fontSize, 0, $posX + $xOffset, $posY + $h + $yOffset, imagecolorallocate($ground_im, $R, $G, $B), $fontfile, $waterText); } //生成水印后的图片 @unlink($groundImage); switch($ground_info[2]) {//取得背景图片的格式 case 1:imagegif($ground_im,$groundImage);break; case 2:imagejpeg($ground_im,$groundImage);break; case 3:imagepng($ground_im,$groundImage);break; default: return 6; } //释放[shi fang]内存[nei cun] if(isset($water_info)) unset($water_info); if(isset($water_im)) imagedestroy($water_im); unset($ground_info); imagedestroy($ground_im); // return 0; } ?>
- jq.zip (77.9 KB)
- 下载次数: 107
发表评论
-
php 报表开发
2011-10-29 02:21 4516 什么是报表 报表( 报: 报告 表: 表格 图表) ... -
php使用excel_class.php操作Excel文件
2011-05-11 15:53 2672<?php //header("Cont ... -
信息采集
2011-03-18 13:47 1041php支持多种远程文件复制,拷贝方法,常用有fsockop ... -
正则表达式
2011-03-12 09:37 10091、正则i,s,m,g 这些是模 ... -
PHP 和 AJAX
2011-01-07 09:22 790AJAX 简介 AJAX = Asynchronous ... -
PHP XML
2011-01-06 15:59 968PHP XML PHP XML Expat 解析器 ... -
PHP 数据库
2011-01-06 15:15 921PHP MySQL 简介 MySQL 是最流行的开源数据库服务 ... -
PHP 高级
2011-01-06 13:26 1296PHP Date() PHP 的 date() 函数用于格式化 ... -
PHP 基础
2011-01-06 11:36 958PHP 是一种创建动态交互 ... -
电子邮件开发
2010-12-24 15:19 977<?php //发送邮件的类 class Smt ... -
电子商务网站支付接口应用
2010-12-03 10:32 1290支付宝纯担保 支付宝(接口网站:www.alipay.com ... -
PHP+jQuery上传图片并对已上载的图片进行裁切
2010-09-09 08:37 3052PHP+jQuery上传图片并对已上载的图片进行裁 ... -
Smarty框架安装使用实例
2010-09-04 08:11 1847ThinkPHP是一个性 ... -
php 代码实现导入导出 mysql数据库
2010-08-02 09:59 1610之前一直是手工导入导出数据库,在服务器端或者客户端备份还 ... -
PHP通用分页程序
2010-01-09 19:57 1750我在一些PHP论坛上经常看到不少PHP初学者对于PHP分页很头 ... -
php配置安装
2010-01-03 14:04 1421我写过的教程不多,而 ...
相关推荐
在PHP中,添加水印是一项常见的任务,常用于保护版权或为网站的图片添加品牌标识。下面我们将深入探讨如何利用PHP实现图片水印功能,并基于提供的`img.php`文件进行详细解析。 首先,我们需要理解基本的图像处理...
"imageTool_imagetool_压缩处理工具_php图形水印_"这个标题表明我们正在讨论一个基于PHP的图像处理工具,它主要用于图片的压缩和添加水印。接下来,我们将深入探讨这些关键知识点。 1. **ImageTool**: 这可能是该...
使用PHP,为图片添加水印图片。 缩放源水印图片,使其最大宽/高度不能超过原图片。
类中应有一个或多个方法用于实际添加水印,如`addWatermark()`。这个方法可能会接收图像资源、水印资源和配置参数作为输入,然后根据这些参数处理图像并保存结果。 5. **获得图片资源**: 在PHP中,可以使用`...
生成各种图片缩略图,并支持添加水印 一个生成缩略图的函数 一个添加水印的函数 傻瓜式应用很简单
3. **添加水印**:调用添加水印的方法,这通常会处理配置、计算位置并执行实际的水印绘制。 4. **保存结果**:生成带有水印的新图像文件,覆盖原图或保存为新文件。 5. **释放资源**:操作完成后,释放GD库中的图像...
- **加载PDF文件**:使用`$mpdf->setSourceFile()`方法加载需要添加水印的PDF文件。 - **创建模板**:使用`$mpdf->importPage()`方法导入PDF页面,然后创建一个模板,以便在上面添加水印。 - **设置水印**:使用`...
在PHP开发中,有时我们需要对PDF文件进行操作,比如添加水印,以保护文档的版权或者增加辨识度。在这种情况下,Mpdf是一款非常实用的PHP库,它允许开发者生成和处理PDF文件,包括添加水印。下面我们将详细介绍如何...
5. **`index.php`**:作为主入口文件,`index.php`很可能是实现这个功能的应用程序核心,它可能包含用户接口、上传图片的逻辑以及调用`image.class.php`中的方法来添加水印并展示结果。 总结来说,实现"php文字水印...
标题"ke_extramtr_ffmpeg_水印_"暗示我们将讨论FFmpeg在水印操作上的应用,而描述中提到的方法是通过Photoshop的阈值功能提取水印。 FFmpeg是一款跨平台的命令行工具,用于处理音频和视频文件,包括转换、编码、...
总结来说,"watermark 图片水印_DOUPHP图片水印插件"是一个为DOUPHP系统量身定制的工具,能够有效地在上传的商品图片上添加水印,以保护商家的图片版权。通过安装和配置压缩包中的文件,用户可以享受到这一强大的...
在PHP中,为图片添加水印是一项常见的任务,可以用于保护版权或增加品牌标识。当在图片上添加文字或图像水印时,有时可能会遇到生成的图片变得模糊的问题。这通常与图片处理过程中的分辨率、缩放、质量设置等因素...
5. **添加水印**:使用fpdf的`SetFont()`方法设置字体,`SetXY()`设置位置,`Cell()`或`MultiCell()`方法添加文本水印,`Image()`方法添加图片水印。注意,对于中文,你需要确保设置的字体支持中文字符。 ```php $...
综上所述,PHP添加水印可以通过GD库或ImageMagick库实现,具体选择取决于项目需求和性能考虑。无论是文本还是图像水印,都可以通过合理的参数设置和定位策略,使水印既不破坏图片整体观感,又能有效地起到保护作用。...
php图片操作可生成等比例缩略图 和图片水印添加!
在PHP编程领域,生成水印...总的来说,生成水印的PHP类是通过GD库或类似库来实现的,它封装了图像处理的细节,使得在项目中添加水印变得更加方便。了解并掌握这些技术,可以帮助开发者有效地保护和定制他们的数字内容。
里面提供的是php处理图片的两个方法,一个是对图片进行等比缩放,另一个是对图片添加水印。也可以两者结合应用。在相应的web目录下运行代码,就可以在image目录下看到经过等比缩放处理的有“s_”前缀的图片和经过...
- **Imagick水印**:`annotateImage()`方法可以方便地添加水印: ```php $draw = new \ImagickDraw(); $draw->setFont($font_path); $draw->setFontSize($font_size); $draw->setFillColor('white'); $...
用于添加水印,PDF Word 文档等添加水印