php增加logo,PHP图片等比缩放和增加Logo水印代码详解和注释
PHP图片等比缩放和增加Logo水印代码详解和注释
//PHP图片的等比缩放和增加Logo水印
/**
* 等比缩放函数(以保存的方式实现)
* @param string $picName 被缩放的处理图片源
* @param int $maxx 缩放后图片的最大宽度
* @param int $maxy 缩放后图片的最大高度
* @param string $pre 缩放后图片名的前缀名
* @return String 返回后的图片名称(带路径),如a.jpg=>s_a.jpg
*/
function imageNewageUpdateSize($picName,$maxx=100,$maxy=100,$pre="s_"){
$imageNewageInfo = getimageNewageSize($picName); //获取图片的基本信息
$w = $imageNewageInfo[0];//获取宽度
$h = $imageNewageInfo[1];//获取高度
//获取图片的类型并为此创建对应图片资源
switch($imageNewageInfo[2]){
case 1: //gif
$imageNew = imageNewagecreatefromgif($picName);
break;
case 2: //jpg
$imageNew = imageNewagecreatefromjpeg($picName);
break;
case 3: //png
$imageNew = imageNewagecreatefrompng($picName);
break;
default:
die("图片类型错误!");
}
//计算缩放比例
if(($maxx/$w)>($maxy/$h)){
$b = $maxy/$h;
}else{
$b = $maxx/$w;
}
//计算出缩放后的尺寸
$nw = floor($w*$b);
$nh = floor($h*$b);
//创建一个新的图像源(目标图像)
$nimageNew = imageNewagecreatetruecolor($nw,$nh);
//执行等比缩放
imageNewagecopyresampled($nimageNew,$imageNew,0,0,0,0,$nw,$nh,$w,$h);
//输出图像(根据源图像的类型,输出为对应的类型)
$picimageNewageInfo = pathimageNewageInfo($picName);//解析源图像的名字和路径信息
$newpicName= $picimageNewageInfo["dirname"]."/".$pre.$picimageNewageInfo["basename"];
switch($imageNewageInfo[2]){
case 1:
imageNewagegif($nimageNew,$newpicName);
break;
case 2:
imageNewagejpeg($nimageNew,$newpicName);
break;
case 3:
imageNewagepng($nimageNew,$newpicName);
break;
}
//释放图片资源
imageNewagedestroy($imageNew);
imageNewagedestroy($nimageNew);
//返回结果
return $newpicName;
}
//调用
echo imageNewageUpdateSize("./imageNewages/leyangjun.jpg",400,400,"ss_"); //你自己要添加的图片
/**
* 为一张图片添加上一个logo图片水印(以保存的方式实现)
* @param string $picName 被处理图片源
* @param string $logo 水印图片
* @param string $pre 处理后图片名的前缀名
* @return String 返回后的图片名称(带路径),如a.jpg=>n_a.jpg
*/
function imageNewageUpdateLogo($picName,$logo,$pre="n_"){
$picNameimageNewageInfo = getimageNewageSize($picName); //获取图片源的基本信息
$logoimageNewageInfo = getimageNewageSize($logo); //获取logo图片的基本信息
//var_dump($logoimageNewageInfo);
//根据图片类型创建出对应的图片源
switch($picNameimageNewageInfo[2]){
case 1: //gif
$imageNew = imageNewagecreatefromgif($picName);
break;
case 2: //jpg
$imageNew = imageNewagecreatefromjpeg($picName);
break;
case 3: //png
$imageNew = imageNewagecreatefrompng($picName);
break;
default:
die("图片类型错误!");
}
//根据logo图片类型创建出对应的图片源
switch($logoimageNewageInfo[2]){
case 1: //gif
$logoimageNew = imageNewagecreatefromgif($logo);
break;
case 2: //jpg
$logoimageNew = imageNewagecreatefromjpeg($logo);
break;
case 3: //png
$logoimageNew = imageNewagecreatefrompng($logo);
break;
default:
die("logo图片类型错误!");
}
//执行图片水印处理 源图的高-logo图的高 源图的宽-logo图的宽
imageNewagecopyresampled($imageNew,$logoimageNew,$picNameimageNewageInfo[0]-$logoimageNewageInfo[0],$picNameimageNewageInfo[1]-$logoimageNewageInfo[1],0,0,$logoimageNewageInfo[0],$logoimageNewageInfo[1],$logoimageNewageInfo[0],$logoimageNewageInfo[1]);
//输出图像(根据源图像的类型,输出为对应的类型)
$picimageNewageInfo = pathimageNewageInfo($picName);//解析源图像的名字和路径信息
$newpicName= $picimageNewageInfo["dirname"]."/".$pre.$picimageNewageInfo["basename"];
switch($picNameimageNewageInfo[2]){
case 1:
imageNewagegif($imageNew,$newpicName);
break;
case 2:
imageNewagejpeg($imageNew,$newpicName);
break;
case 3:
imageNewagepng($imageNew,$newpicName);
break;
}
//释放图片资源
imageNewagedestroy($imageNew);
imageNewagedestroy($logoimageNew);
//返回结果
return $newpicName;
}
//测试
//echo imageNewageUpdateLogo("./imageNewages/leyangjun.jpg","./imageNewages/logo.png"); //对应添加你的图片,和你的logo水印图片 OK
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:php中文网
php增加logo,PHP图片等比缩放和增加Logo水印代码详解和注释相关推荐
- python使用视频_Python中操作各种多媒体,视频、音频到图片的代码详解
我们经常会遇到一些对于多媒体文件修改的操作,像是对视频文件的操作:视频剪辑.字幕编辑.分离音频.视频音频混流等.又比如对音频文件的操作:音频剪辑,音频格式转换.再比如我们最常用的图片文件,格式转换.各 ...
- python播放视频代码_Python中操作各种多媒体,视频、音频到图片的代码详解
我们经常会遇到一些对于多媒体文件修改的操作,像是对视频文件的操作:视频剪辑.字幕编辑.分离音频.视频音频混流等.又比如对音频文件的操作:音频剪辑,音频格式转换.再比如我们最常用的图片文件,格式转换.各 ...
- Android复习14【高级编程:推荐网址、抠图片上的某一角下来、Bitmap引起的OOM问题、三个绘图工具类详解、画线条、Canvas API详解(平移、旋转、缩放、倾斜)、矩阵详解】
目 录 推荐网址 抠图片上的某一角下来 8.2.2 Bitmap引起的OOM问题 8.3.1 三个绘图工具类详解 画线条 8.3.16 Canvas API详解(Part 1) 1.transla ...
- nmmqq.php?/lspc.html,html中的图片直接使用base64编码后的字符串代替详解
网页中的图片是使用base64编码后的字符串代替了,这个叫做Data URI scheme,下面有个不错的示例,大家可以参考下 最近来了一个网页,里面有图片,但是却没有引用外部的图片资源,很好奇.查看 ...
- JavaGUI 简易贪吃蛇代码详解+图片素材
简易贪吃蛇 运行截图 图片素材 代码详解 package com.du.snake; import javax.swing.*; import java.awt.*; import java.awt. ...
- php 显示要上传的图片格式,php判断文件上传图片格式的实例详解
php判断文件上传图片格式的实例详解 判断文件图片类型, $type = $_FILES['image']['tmp_name'];//文件名 //$type = $this->getImage ...
- php android 图片上传,android上传图片到PHP的过程详解
这篇文章主要介绍了android上传图片到PHP的过程详解,需要的朋友可以参考下 今天在做上传头像的时候,总是提交连接超时错误,报错信息如下:XXXXXXSokcetTimeOutXXXXXXXX 然 ...
- python代码图片头像_Flask 上传自定义头像的实例详解
Flask Web 开发这本书基本上做完了,后面还需要温习,但是自己做的博客总觉得简陋了点,所以,在动脑子开发新功能 今天想到最基本的功能,自定义头像 那这样的功能,设计到2大基本功能块 1:如何进行 ...
- android 图片浏览器旋转,OpenGL纹理旋转及翻转问题详解
大家好,我是程序员kenney,今天给大家讲解一下Android上OpenGL开发可能会遇到的一些纹理旋转及翻转的问题,其中有些原理在其它平台上如ios,osx上也是类似的.纹理旋转的问题一定要搞清楚 ...
最新文章
- java zmq订阅_从ZMQ PUB套接字获取订户过滤器
- schema get_ddl
- ASP.NET MVC 源代码 剖析
- ADSL之PPPOE
- 【汇编语言】王爽实验5(5)(6)的解答 建立数据类型匹配的观念
- 算法和数据结构(四)
- pytorch梯度的计算过程
- MySQL基于mysqldump及lvmsnapshot备份恢复
- linux 下恢复文件权限设置,备份和恢复Linux文件权限的方法
- 三星 smarttv android,三星SmartView
- 通过LeecodeAnimation学习数据结构与算法(0)上
- 人生若只如初见-云计算时代
- 《普罗米修斯/异形前传》[BD-RMVB.720p.中英双字][2012年科幻]
- Nginx搭建虚拟主机环境
- ValueError: Invalid format specifier
- EXCEL打开后无任何内容显示
- 通信端口感叹号_解决通用串行总线控制器总是有感叹号的办法
- html相对于父元素居中,浅谈css中一个元素如何在其父元素居中显示
- Matlab MCR 7.14
- 【单片机原理及其应用】第一章基础软件的介绍及其使用
热门文章
- Python全栈(八)Flask项目实战之10.前台发布帖子和后台帖子管理页面搭建
- 金山词霸 IE9取词兼容性补丁包下载(来自官方)
- VMware15.5安装win7旗舰版系统
- linux inode大小,Linux inode详解
- 计算机毕设(附源码)JAVA-SSM基于微信的基层党建信息系统
- eclipse ssh mysql数据库_Eclipse搭建SSH环境实现Struts2分页显示mysql数据库表中内容...
- Chrome代理管理器插件
- Zabbix监控Kafka topic积压数据
- MySQL复制data目录进行数据迁移(Win环境)
- PTPIP协议中文版