首页 > php教程 > PHP源码 > 正文

给图片加水印

PHP中文网
发布: 2016-05-23 08:39:49
原创
1320人浏览过

跳至

<?php
/**
  * 功能:给一张图片加上水印效果
  *           $i  要加水印效果的图片
  *           $t  水印文字
  *           $size 文字大小
  *           $pos 水印的位置
  *   		   $color 文字的颜色
  *           $flag 是布尔值,主要用来区分是不是原图上加水印
  *           $type 如果$flag等于false 则新图上加上水印 新文件名为 原名_txt.jpg
  */
function txt($i,$t='版权所有',$size=25,$pos=5,$color='rand',$flag=true,$type='_txt'){
	$img = imagecreatefromjpeg($i);
	$w = imagesx($img);
	$h = imagesy($img);
	$font = dirname(__FILE__).'/font/ls.ttf';
	$ps = imagettfbbox($size,0,$font,$t);
	$tw = $ps[4];
	$th = abs($ps[5]);
	switch($pos){
		case 1:break;	
		case 2:break;	
		case 3:break;	
		case 4:break;	
		case 5:$x=($w-$tw)/2;$y=($h-$th)/2+$th;break;	
		case 6:break;	
		case 7:break;	
		case 8:break;	
		case 9:break;	
		default:break;
	}
	$c = getcolor($img,$color);
	imagettftext($img,$size,0,$x,$y,$c,$font,$t);
	if($flag){
		imagejpeg($img,$i);	
	}else{
		$ext = ext($i);
		$ppp = rtrim($i,'.'.$ext);
		$ppp = $ppp.$type.'.'.$ext;
		imagejpeg($img,$ppp);
	}
}

function getcolor($i,$c='rand',$a=50){
	$cc = '';
	switch($c){
		case 'white':$cc=imagecolorallocatealpha($i,255,255,255,$a);break;
		case 'black':$cc=imagecolorallocatealpha($i,0,0,0,$a);break;
		case 'red':$cc=imagecolorallocatealpha($i,255,0,0,$a);break;
		case 'green':$cc=imagecolorallocatealpha($i,0,255,0,$a);break;
		case 'blue':$cc=imagecolorallocatealpha($i,0,0,255,$a);break;
		case 'orange':$cc=imagecolorallocatealpha($i,0xff,0x66,0x33,$a);break;
		case 'yellow':$cc=imagecolorallocatealpha($i,255,255,0,$a);break;
		case 'rand':$cc=imagecolorallocatealpha($i,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255),$a);break;
		default:
			$cs = substr($c,1);
			$ok = str_split($cs,2);
			$cc = imagecolorallocatealpha($i,hexdec($ok[0]),hexdec($ok[1]),hexdec($ok[2]),$a);
		break;		
	}
	return $cc;
}


/**
 * 功能是:返回扩展名
 */
 
function ext($f){
	$exts = explode('.',$f);
	return end($exts);
}

/**
  *  功能是:返回文件名,不含扩展名
  */
function name($f){
	$s = explode('/',$f);
	$fn = end($s);
	return rtrim($fn,'.'.ext($f));
}
登录后复制

                   

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号