<?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. Flask学习记录之Flask-Migrate

    一.配置Flask-Migrate from flask.ext.migrate import Migrate, MigrateCommand migrate = Migrate(app,db) #第 ...

  2. Linux基础知识入门

    [Linux基础]Linux基础知识入门及常见命令.   前言:最近刚安装了Linux系统, 所以学了一些最基本的操作, 在这里把自己总结的笔记记录在这里. 1,V8:192.168.40.10V1: ...

  3. 自制单片机之十一……模数转换IC ADC0809

    我们重在实际制做,太罗嗦的内容我就不说了,只讲些跟制做有关的最精炼的知识. ADC0809是可以将我们要测量的模拟电压信号量转换为数字量从而可以进行存储或显示的一种转换IC.下面是它的管脚图和逻辑图: ...

  4. linux磁盘限额配置:quota命令

    LINUX下也有类似WINDOWS NTFS所用的磁盘限额,用的是quota来实现通过rpm -q quota确定是否已安装用quota只能对patation做限额,要做到针对某个目录来做只能靠ln ...

  5. JVM基础和调优(二)

    主要讲述java虚拟机的内存体系结构 了解了JVM 的一些基础之后,我们来看看java虚拟机内存的体系结构,这个是理解JVM垃圾收集算法的前提,理解了内存结构我们才能够针对不同的部分根据我们的程序进行 ...

  6. C++中构造函数初始化成员列表总结

    1.只能在构造函数初始化列表初始化的成员变量的类型? a.const成员变量 b.引用类型的成员变量 c.static不能在初始化列表中进行初始化 d.类成员变量中有自定义类型的变量最好在初始化列表中 ...

  7. QQ地图api里的 地址解析函数 看不懂 javascript_百度知道

    QQ地图api里的 地址解析函数 看不懂 javascript_百度知道     QQ地图api里的 地址解析函数 看不懂 javascript    2011-09-18 12:18     匿名 ...

  8. cocos2d-x核心基础类

    Application 应用程序入口类 EGLView 绘图句柄 Director Node Layer Scene

  9. vmplayer中的fedora20无法进入图形界面

    新装了台fedora20的虚拟机,安装升级了一些东西后.启动时过了fedora的logo画面后就是黑屏. 也没提示不论什么错误,好在shell还能进去.查看/var/log/anaconda/sysl ...

  10. android 银行卡。。空格输入

    class myWatcher implements TextWatcher { int beforeTextLength = 0; int onTextLength = 0; boolean isC ...