<?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. 如何监听input的脚本赋值

    今天记录下我解决input值改变监听,大家肯定首先想到onchange方法.对于实时监听改变用onpropertychange.oninput等方法:可是,onchange并不能监听脚本改变的值,对于 ...

  2. win7系统64位"禁用驱动程序签名强制"如何设置?

    换了Win7系统64位旗舰版的朋友是不是都发现了一点,以前32位Win7系统用的好好的小程序小应用,一下子就装不上了.这是由于Win7系统64位系统对于未有认证签名的驱动程序进行了限制安装,而大部分小 ...

  3. android系统自带的Service原理与使用

    1. 说明 android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,比如 MountService监听是否有SD卡安装及移除,Clipboar ...

  4. 对拍 For Linux

    #!/bin/sh g++ -g gene.cpp -o gene g++ -g a.cpp -o a g++ -g b.cpp -o b while true; do  ./gene > in ...

  5. Linux Shell逻辑运算符和表达式详解

    Shell 逻辑运算符涉及以下几种类型,只要适当选择,可以解决我们很多复杂的判断,达到事半功倍效果. 一.逻辑判断1.关于文件与目录的逻辑判断-f 常用.判断『文件』是否为普通文件,比如: if [ ...

  6. How to install phpmyadmin on centos 6

    Phpmyadmin :   Phpmyadmin is a free tool used to administrate MySQL . Phpmyadmin supports all major ...

  7. amcharts报表制作

    fusioncharts官网:http://www.fusioncharts.com/demos/gallery/#column-and-bar 最近使用amcharts fb4,flashBuild ...

  8. 关于static静态

    静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用.静态属性不允许对象使用->操作符调用. class Car { private static $speed = ...

  9. python RabbitMQ队列使用(入门篇)

    ---恢复内容开始--- python RabbitMQ队列使用 关于python的queue介绍 关于python的队列,内置的有两种,一种是线程queue,另一种是进程queue,但是这两种que ...

  10. python之模块:decimal

    # -*- coding: utf-8 -*-__author__ = 'Administrator'#数学计算import decimal#用于定点和浮点运算#文档:https://docs.pyt ...