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上也是类似的.纹理旋转的问题一定要搞清楚 ...
最新文章
- Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
- 数据结构中等号表示什么_通过分析2016年最重要的252个中等故事我学到了什么...
- Streaming源码解读之接收流数据的全生命周期
- gpu装linux系统显示黑屏,linux操作系统安装gpu版本的paddlepaddle出现问题
- 重温java中的String,StringBuffer,StringBuilder类
- 写论文时的一些高大上词句
- 【华为云技术分享】云小课 | 灵活配置权限,满足存储安全(OBS权限管理介绍上篇)
- 2.导数——线性代数回顾、曲线概念_1
- 列表(添加、修改、查、删除)
- 回归分析beta值的标准_学好这20%,就能解决80%的数据分析问题 | 数据产品经理必看...
- JavaScript 的 async/await 理解(4)
- 视频播放器+控制器--封装
- python opencv 找到圆点标定板所有点后通过距离找四个角点
- java全世界各国城市地址解析
- 雨滴式的显示图片 (cloud 转贴) (转)
- uni-app前端解密微信小程序手机号加密数据
- android实现开机自动运行程序,Android编程实现应用程序开机自启动的方法
- 岗位:python后端工程师
- 用html写箭头的原理,5个编写高质量箭头函数的最佳实践
- matlab使用hough变换函数进行车道检测
热门文章
- 一文了解Gauss数据库:开发历程、OLTPOLAP特点、行式列式存储,及与Oracle和AWS对比
- 蓝牙耳机哪个牌子好?数码博主盘点口碑蓝牙耳机品牌
- java cxf soapheader_CXF 中自定义SOAPHeader
- 运筹学-单纯形法-代码实现(包含做题的每一步骤)
- 网络配置:vlan配置
- 大学计算机入门基础知识论文,关于大学计算机基础论文.docx
- docker+jenkins构建vue项目
- html5网页制作测试题,Dreamweaver CS5网页制作期末测试题
- Excel催化剂开源第15波-VSTO开发之DataTable数据导出至单元格区域
- Winform中DataGridview的基本用法