-
php给图片加文字水印与图片水印代码
这款程序给图片加文字水印时是调用 了C:\\WINDOWS\\Fonts\\\\SIMHEI.TTF字体,给图片加水印时就可以自定图片,实例代码如下:
- $image->wprint_img();//执行图片水印
- $image->wprint_string();//执行文字水印
- class editimage{
- private $imagefile;//图片文件
- private $smallimg;//水印图片
- private $string;//水印文字
- private $position;//存放位置
- private $dst_x=600;//原始图片打水印x坐标
- private $dst_y=0;//原始图片打水印y坐标
- private $str_x=450;
- private $str_y=200;
- private $font="c:windows ontssimhei.ttf";//原始图片打水印字体路径
- private $imgej;// imagecolorallocate后的变量
- function __get($value){
- return $this->$value;
- }
- function __set($property,$value){
- $this->$property=$value;
- }
- /**
- * 构造函数初始化
- *
- * @param string $imagefile 被上水印的文件
- * @param string $smallimg 水印文件
- * @param string $string 水印文字
- * @param string $position 存放位置
- * @param int $dst_x 被上水印的图片x
- * @param int $dst_y 被上水印的图片y
- */
- function __construct($imagefile,$smallimg='',$string=''){//,$position='',$dst_x=0,$dst_y=0
- $this->imagefile=$imagefile;
- $this->smallimg=$smallimg;
- $this->string=$string;
- $this->imgej=$this->imagecreatef($this->imagefile);
- }
- function get_extname($file){//获取文件的后缀名
- if (file_exists($this->imagefile)) {
- $img=getimagesize($file);
- switch ($img[2]){
- case "1":
- return "gif";
- case "2":
- return "jpg";
- case "3":
- return "png";
- }
- }else{
- return false;
- }
- }
- function getsize($file,$wh){//获取图大小. $wh:w获得宽,h获得高
- $image=getimagesize($file);
- if ($wh) {
- switch ($wh){
- case "w":
- return $image[0];
- case "h":
- return $image[1];
- }
- }else{
- return false;
- }
- }
- function imagecreatef($file){//创建类型
- if ($this->get_extname($file)) {
- switch($this->get_extname($file)){
- case "gif":
- return imagecreatefromgif($file);
- case "jpg":
- return imagecreatefromjpeg($file);
- case "png":
- return imagecreatefrompng($file);
- }
- }else{
- echo "文件不存在";
- }
- }
- //水印图片处理
- function wprint_img(){
- if($this->smallimg){
- imagecopy($this->imgej,$this->imagecreatef($this->smallimg),$this->dst_x,$this->dst_y,0,0,$this->getsize($this->smallimg,"w"),$this->getsize($this->smallimg,"h"));
- }else{
- return "水印图片不存在!";
- }
- }
- //水印文字处理
- function wprint_string(){
- return imagettftext($this->imgej,20,0,$this->str_x,$this->str_y,imagecolorallocate($this->imgej,200,200,200),$this->font,iconv("gb2312","utf-8",$this->string));
- }
- function choose_imgouttype(){//输出
- if($this->position){
- $this->get_extname($this->imagefile);
- switch ($this->get_extname($this->imagefile)){
- case "gif":
- return imagegif($this->imgej,$position);
- case "jpg":
- return imagejpeg($this->imgej,$this->position);
- case "jpeg":
- return imagejpeg($this->imgej,$this->position);
- case "png":
- return imagepng($this->imgej,$position);
- }
- }else{
- switch ($this->get_extname($this->imagefile)){
- case "gif":
- return imagegif($this->imgej);
- case "jpg":
- return imagejpeg($this->imgej);
- case "jpeg":
- return imagejpeg($this->imgej);
- case "png":
- return imagepng($this->imgej);
- }
- }
- }
- }
- //使用方法如下:
- $image=new editimage("d90.gif","hknmtt.png","我的d90");
- $image->wprint_img();//执行图片水印
- $image->wprint_string();//执行文字水印,开源代码phpfensi.com
- $image->choose_imgouttype();
原文链接:http://www.phpfensi.com/php/20140819/4486.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式