<?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));
}

php给一张图片加上水印效果的更多相关文章

  1. PHP实现水印效果(文字、图片)

    第一种 <?php /** * 功能:给一张图片加上水印效果 * $i 要加水印效果的图片 * $t 水印文字 * $size 文字大小 * $pos 水印的位置 * $color 文字的颜色 ...

  2. 用Python给你的博客加上水印

    之前写的博客里面用到的图片都没有加水印,今天才在别的网站上发现自己的博客居然一个字不动的出现在了别人的文章里,而且还不标注出处,简直醉了. 其实博客这种东西讲真我是很愿意让别人看得,因为自己写的也比较 ...

  3. 通过js给网页加上水印背景

    有些后端管理系统,因为业务逻辑的需要,需要加上水印,下面就是水印方法. function watermark(settings) { debugger; //默认设置 var defaultSetti ...

  4. 使用WPF将图片转变为灰度并加上水印并保存为文件

    原文:使用WPF将图片转变为灰度并加上水印并保存为文件 运行效果: (上图中左下角为原图的缩小显示,By:Johnson为TextBlock)保存的结果图片:上图的"Test Words.& ...

  5. WPF的TextBox水印效果详解

    一种自以为是的方式: 本来只是想简单的做个水印效果,在文本框内容为空的时候提示用户输入,这种需求挺常见.网上一搜 都是丢给你你一大段xaml代码.用c#代码实现我是不倾向了 既然用wpf就得Xaml啊 ...

  6. C# 处理PPT水印(二)——去除水印效果(文本水印、图片水印)

    本文将对C#处理PPT幻灯片中的水印进一步说明和介绍.在C# 处理PPT水印(一)一文中,分享了如何插入水印效果的方法,包括插入文字水印效果.插入图片作为水印效果两种情况,那对于不需要水印效果的情况, ...

  7. WPF之TextBox和PasswordBox水印效果

    在博客园里看到了好多关于文本框和密码框水印效果的文章,今天有空也来实现一把,最终效果图如下: 文本框的话,稍微好一点直接可以绑定它的Text属性,因为他是个依赖属性,我用了二种方式来实现水印效果:触发 ...

  8. WIN7系统IIS上发布站点后水印效果失效的解决方法

    关于使用一般处理程序给图片添加水印的方法,请参考: 使用一般处理程序(IHttpHandler)制作图片水印 有些时候,给图片添加水印了,在本机运行也都正常,但是发布到IIS上后就没有水印效果了.本人 ...

  9. iOS图片加水印效果的实现并保存至相冊

    图片加水印效果的实现并保存至相冊 实现效果如图: project下载:githubproject下载链接 代码: - (void)viewDidLoad { [super viewDidLoad]; ...

随机推荐

  1. google 地图,多个标记 js库

    360 云盘:http://yunpan.cn/cVgU3X7JFxAGY (提取码:1f07) 百度云盘:链接: http://pan.baidu.com/s/1c0fbCWw 密码: w1pm 参 ...

  2. uC/OS-II中的时间 (转)

    时间是一个非常重要的概念,我们和朋友出去游玩需要约定一个时间,做事情也需要花费一段时间,总之,我们的生活离不开时间.操作系统也一样,也需要一个时间来规范其任务的执行. 我们生活中,时间的最小单位是秒, ...

  3. IIC 概述之用IO模拟

    最近做的一个项目,是基于IIC总线通信的传感器系统.由于另外一个传感器使用的是类IIC协议,而不是标准IIC,所以MCU不能与其通信,最后没有办法,只有通过I/O口模拟的方式实现IIC的总线通信.具体 ...

  4. SqlServer2008 新功能:简单数据加密

    一.首先要把密码字段改成 varbinary 类型. CREATE TABLE [dbo].[UserInfo]( [id] [int] IDENTITY(1,1) NOT NULL, [name] ...

  5. 关于Android的一些理解

    Activity中写回调函数 View的回调函数-------->事件回调 Activity层--------------->生命周期回调函数.事件回调函数 Window层 Layout是 ...

  6. 深入理解7816(3)-----关于T=0

    卡片和终端之间的数据传输是通过命令响应的方式进行的,卡片只能被动地接收命令,并且给出响应.所有的命令都是以命令头开始,而该命令被完整地执行后(无论结果对错),必须以包含状态字(SW1 SW2)的响应结 ...

  7. 如何将android studio项目转换成eclipse

    更新:虽然本人坚守eclipse很久,但是现在我也不再推荐继续用eclispe了,自己的项目用还没什么问题,但是你如果想用github上的项目,用eclispe会越来越难.如果你仍然感兴趣,继续看下面 ...

  8. nodejs教程

    http://www.yiibai.com/nodejs/ http://www.runoob.com/nodejs/nodejs-tutorial.html http://www.runoob.co ...

  9. [置顶] Oracle 11g R2 ASM:了解 Oracle ASM 基本概念

    About Oracle ASM Instances About Oracle ASM Disk Groups About Mirroring and Failure Groups About Ora ...

  10. iOS 语音识别使用讯飞报错

    You must rebuild it with bitcode enabled(Xcode setting ENABLE_BITCODE), obtain an updated library fr ...