0

0

php上传图片加水印(图片水印,文字水印)_PHP教程

php中文网

php中文网

发布时间:2016-07-13 10:45:07

|

950人浏览过

|

来源于php中文网

原创

php上传图片加水印(图片水印,文字水印) 这是一款比较完整理的在用户上传图片时就自动给图片增加上水印,这款增加水印功能可以增加文字水印与图片水印哦。

php教程上传图片加水印(图片水印,文字水印)
这是一款比较完整理的在用户上传图片时就自动给图片增加上水印,这款增加水印功能可以增加文字水印与图片水印哦。

/*  * created on 2010-6-21  *  * the class for control image  *  * made by s71ence  *  * @$img_path 图片路径  * @$is_auto_reduce 图片是否自动按照大小等级压缩 1是  * @$is_appoint 是否手动进行压缩或放大 1是  * @$multiple 手动指定压缩/放大比例  * @$is_water_str 是否加水印文字 1是  * @$water_str 水印文字  * @$is_watermark 是否加水印图片 1是  * @$logo_path 水印图片路径  * @$is_display 是否显示图片 1是  * @$is_create 是否生成压缩后的图片 1是  *  * 注:  * 1.生成新图时不可显示图片,即$isdisplay和$iscreate不可同时置为1  * 2.当图片宽或高小于1000时,需手动设置压缩比例进行压缩  * 3.不建议启用水印,若要启用,建议原图片大小最好在1000以内  * 4.水印文字中不可含有中文  * 5.新生成的图片在原目录文件中,支持n个层级  */  class image_control  {   private $img_path;   private $is_auto_reduce;   private $is_appoint;   private $multiple;   private $is_water_str;   private $water_str;   private $is_watermark;   private $logo_path;   private $is_display;   private $is_create;   function __construct($img_path,$is_auto_reduce,$is_appoint,$multiple,$is_water_str,$water_str,$is_watermark,$logo_path,$is_display,$is_create)   {    $this->img_path=$img_path;    $this->is_auto_reduce=$is_auto_reduce;    $this->is_appoint=$is_appoint;    $this->multiple=$multiple;    $this->is_water_str=$is_water_str;    $this->water_str=$water_str;    $this->is_watermark=$is_watermark;    $this->logo_path=$logo_path;    $this->is_display=$is_display;    $this->is_create=$is_create;   }   function img_control()   {   //获取原图   $img_info=getimagesize($this->img_path);   switch($img_info[2])   {    case 1:     $img_get=@imagecreatefromgif($this->img_path);    break;    case 2:     $img_get=@imagecreatefromjpeg($this->img_path);    break;    case 3:     $img_get=@imagecreatefrompng($this->img_path);    break;   }   //文字水印   if($this->is_water_str==1)   {    //imagettftext(原图,文字大小,文字旋转,水印起始坐标x,水印起始坐标y,$te,'simhei.ttf',$str);    $te=imagecolorallocate($img_get,255,255,255);    $str=iconv("gbk","utf-8",$this->water_str);//水印文字    imagettftext($img_get,16,0,$img_info[0]-200,$img_info[1]-20,$te,'msyh.ttf',$str);   }   //图片水印   if($this->is_watermark==1)   {    //水印图片处理    $logo_info=getimagesize($this->logo_path);    switch($logo_info[2])    {     case 1:      $logo=@imagecreatefromgif($this->logo_path);     break;     case 2:      $logo=@imagecreatefromjpeg($this->logo_path);     break;     case 3:      $logo=@imagecreatefrompng($this->logo_path);     break;    }    //水印logo图片    //函数说明:imagecopy(原图,水印图片,水印坐标x,水印坐标y,水印图片开始坐标x,水印图片开始坐标y,'水印图片宽','水印图片高');    imagecopy($img_get,$logo,0,0,0,0,$logo_info[0],$logo_info[1]);   }   //自动图片压缩 按图片大小分级自动压缩   //imagecopyresized(画布,原图,画布起始x坐标,画布起始y坐标,原图起始x坐标,原图起始x坐标,新图片宽,新图片高,原图片宽,原图片高);   if($this->is_auto_reduce==1)   {    if($img_info[0]>=3000 || $img_info[1]>=3000)    {     $new_image_get=imagecreatetruecolor($img_info[0]*0.03,$img_info[1]*0.03);//生成画布     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.03,$img_info[1]*0.03,$img_info[0],$img_info[1]);    }    else if($img_info[0]>=2500 || $img_info[1]>=2500)    {     $new_image_get=imagecreatetruecolor($img_info[0]*0.04,$img_info[1]*0.04);     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.04,$img_info[1]*0.04,$img_info[0],$img_info[1]);    }    else if($img_info[0]>=2000 || $img_info[1]>=2000)    {     $new_image_get=imagecreatetruecolor($img_info[0]*0.05,$img_info[1]*0.05);     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.05,$img_info[1]*0.05,$img_info[0],$img_info[1]);    }    else if($img_info[0]>=1500 || $img_info[1]>=1500)    {     $new_image_get=imagecreatetruecolor($img_info[0]*0.08,$img_info[1]*0.08);     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.08,$img_info[1]*0.08,$img_info[0],$img_info[1]);    }    else if($img_info[0]>=1000 || $img_info[1]>=1000)    {     $new_image_get=imagecreatetruecolor($img_info[0]*0.1,$img_info[1]*0.1);     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.1,$img_info[1]*0.1,$img_info[0],$img_info[1]);    }    else if($img_info[0]>=500 || $img_info[1]>=500)    {     $new_image_get=imagecreatetruecolor($img_info[0]*0.2,$img_info[1]*0.2);     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.2,$img_info[1]*0.2,$img_info[0],$img_info[1]);    }    else if($img_info[0]>=300 || $img_info[1]>=300)    {     $new_image_get=imagecreatetruecolor($img_info[0]*0.3,$img_info[1]*0.3);     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.3,$img_info[1]*0.3,$img_info[0],$img_info[1]);    }    else    {     $new_image_get=imagecreatetruecolor($img_info[0]*1,$img_info[1]*1);     imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*1,$img_info[1]*1,$img_info[0],$img_info[1]);    }   }   //手动图片压缩   //imagecopyresized(画布,原图,画布起始x坐标,画布起始y坐标,原图起始x坐标,原图起始x坐标,新图片宽,新图片高,原图片宽,原图片高);   if($this->is_appoint)   {    $new_image_get=imagecreatetruecolor($img_info[0]*$this->multiple,$img_info[1]*$this->multiple);//生成画布    imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*$this->multiple,$img_info[1]*$this->multiple,$img_info[0],$img_info[1]);   }   //图像输出   if($this->is_display==1)   {    header("content-type: image/jpeg");    return imagejpeg($new_image_get);   }   //新图像生成   if($this->is_create==1)   {    $new_name=explode("/",$this->img_path);    $new_name_string="";    for($i=0;$iimg_path))    {     setcookie("img_new_path", $new_img_path);        //return "图片生成成功!新图:".$new_img_path."原图:".$this->img_path;    }    else    {     return "图片生成失败,请检查配置是否正确!";    }   }   }   function __desctruct()   {    //clear   }  }

//调用方法

网趣网上购物系统旗舰版
网趣网上购物系统旗舰版

网趣网上购物系统支持PC电脑版+手机版+APP,数据一站式更新,支持微信支付与支付宝支付接口,是专业的网上商城系统,网趣商城系统支持淘宝数据包导入,实现与淘宝同步更新!支持上传图片水印设置、图片批量上传功能,同时支持订单二次编辑以及多级分类隐藏等实用功能,新版增加商品大图浏览与列表显示功能,使分类浏览更方便,支持最新的支付宝即时到帐接口。

下载

/* $img_path="../users/user_photo/t2.jpg"; //被操作的图片路径
 $is_auto_reduce=1;//图片是否自动按照大小等级压缩 1是
 $is_appoint=0;//是否手动进行压缩 1是
 $multiple=0.5;//手动指定压缩比例
 $is_water_str=0;//是否加水印文字
 $water_str="www.bKjia.c0m";//水印文字
 $is_watermark=0;//是否加水印图片 1是
 $logo_path="../image/logo_about.gif";//水印图片路径
 $is_display=0;//是否显示图片 1是
 $is_create=1;//是否生成压缩后的图片 1是
 $img=new image_control($img_path,$is_auto_reduce,$is_appoint,$multiple,$is_water_str,$water_str,$is_watermark,$logo_path,$is_display,$is_create);
 echo $img->img_control();*/

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/633043.htmlTechArticlephp上传图片加水印(图片水印,文字水印)这是一款比较完整理的在用户上传图片时就自动给图片增加上水印,这款增加水印功能可以增加文...

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

12

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

4

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

18

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 10.3万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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