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水印代码详解和注释相关推荐

  1. python使用视频_Python中操作各种多媒体,视频、音频到图片的代码详解

    我们经常会遇到一些对于多媒体文件修改的操作,像是对视频文件的操作:视频剪辑.字幕编辑.分离音频.视频音频混流等.又比如对音频文件的操作:音频剪辑,音频格式转换.再比如我们最常用的图片文件,格式转换.各 ...

  2. python播放视频代码_Python中操作各种多媒体,视频、音频到图片的代码详解

    我们经常会遇到一些对于多媒体文件修改的操作,像是对视频文件的操作:视频剪辑.字幕编辑.分离音频.视频音频混流等.又比如对音频文件的操作:音频剪辑,音频格式转换.再比如我们最常用的图片文件,格式转换.各 ...

  3. Android复习14【高级编程:推荐网址、抠图片上的某一角下来、Bitmap引起的OOM问题、三个绘图工具类详解、画线条、Canvas API详解(平移、旋转、缩放、倾斜)、矩阵详解】

    目   录 推荐网址 抠图片上的某一角下来 8.2.2 Bitmap引起的OOM问题 8.3.1 三个绘图工具类详解 画线条 8.3.16 Canvas API详解(Part 1) 1.transla ...

  4. nmmqq.php?/lspc.html,html中的图片直接使用base64编码后的字符串代替详解

    网页中的图片是使用base64编码后的字符串代替了,这个叫做Data URI scheme,下面有个不错的示例,大家可以参考下 最近来了一个网页,里面有图片,但是却没有引用外部的图片资源,很好奇.查看 ...

  5. JavaGUI 简易贪吃蛇代码详解+图片素材

    简易贪吃蛇 运行截图 图片素材 代码详解 package com.du.snake; import javax.swing.*; import java.awt.*; import java.awt. ...

  6. php 显示要上传的图片格式,php判断文件上传图片格式的实例详解

    php判断文件上传图片格式的实例详解 判断文件图片类型, $type = $_FILES['image']['tmp_name'];//文件名 //$type = $this->getImage ...

  7. php android 图片上传,android上传图片到PHP的过程详解

    这篇文章主要介绍了android上传图片到PHP的过程详解,需要的朋友可以参考下 今天在做上传头像的时候,总是提交连接超时错误,报错信息如下:XXXXXXSokcetTimeOutXXXXXXXX 然 ...

  8. python代码图片头像_Flask 上传自定义头像的实例详解

    Flask Web 开发这本书基本上做完了,后面还需要温习,但是自己做的博客总觉得简陋了点,所以,在动脑子开发新功能 今天想到最基本的功能,自定义头像 那这样的功能,设计到2大基本功能块 1:如何进行 ...

  9. android 图片浏览器旋转,OpenGL纹理旋转及翻转问题详解

    大家好,我是程序员kenney,今天给大家讲解一下Android上OpenGL开发可能会遇到的一些纹理旋转及翻转的问题,其中有些原理在其它平台上如ios,osx上也是类似的.纹理旋转的问题一定要搞清楚 ...

最新文章

  1. java zmq订阅_从ZMQ PUB套接字获取订户过滤器
  2. schema get_ddl
  3. ASP.NET MVC 源代码 剖析
  4. ADSL之PPPOE
  5. 【汇编语言】王爽实验5(5)(6)的解答 建立数据类型匹配的观念
  6. 算法和数据结构(四)
  7. pytorch梯度的计算过程
  8. MySQL基于mysqldump及lvmsnapshot备份恢复
  9. linux 下恢复文件权限设置,备份和恢复Linux文件权限的方法
  10. 三星 smarttv android,三星SmartView
  11. 通过LeecodeAnimation学习数据结构与算法(0)上
  12. 人生若只如初见-云计算时代
  13. 《普罗米修斯/异形前传》[BD-RMVB.720p.中英双字][2012年科幻]
  14. Nginx搭建虚拟主机环境
  15. ValueError: Invalid format specifier
  16. EXCEL打开后无任何内容显示
  17. 通信端口感叹号_解决通用串行总线控制器总是有感叹号的办法
  18. html相对于父元素居中,浅谈css中一个元素如何在其父元素居中显示
  19. Matlab MCR 7.14
  20. 【单片机原理及其应用】第一章基础软件的介绍及其使用

热门文章

  1. Python全栈(八)Flask项目实战之10.前台发布帖子和后台帖子管理页面搭建
  2. 金山词霸 IE9取词兼容性补丁包下载(来自官方)
  3. VMware15.5安装win7旗舰版系统
  4. linux inode大小,Linux inode详解
  5. 计算机毕设(附源码)JAVA-SSM基于微信的基层党建信息系统
  6. eclipse ssh mysql数据库_Eclipse搭建SSH环境实现Struts2分页显示mysql数据库表中内容...
  7. Chrome代理管理器插件
  8. Zabbix监控Kafka topic积压数据
  9. MySQL复制data目录进行数据迁移(Win环境)
  10. PTPIP协议中文版