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. 万字长文爆肝 DNS 协议!
  2. auot lisp 选择集处理_第64集 python机器学习:用预处理进行参数选择
  3. 【Google Play】IARC 年龄分级 ( IARC 国际年龄分级联盟 | Google Play 设置应用年龄分级 )
  4. SQL SERVER服务停止和启动命令行
  5. matplotlib绘制混淆矩阵_混淆矩阵及其可视化
  6. 【sprinb-boot】配置文件分离打包
  7. C#ASP.NET执行BAT批处理代码
  8. 计算机专业运动会口号,运动会口号押韵有气势 计算机系霸气口号
  9. Python itertools chain
  10. 【腾讯】结合蒸馏和多任务学习的召回模型
  11. 分享:国外著名代码管理网站GitHub访问方式
  12. Windows 使用命令行查看 wifi 密码
  13. 视频:中国首届微博开发者大会杨卫华演讲
  14. 题解 UVA12304 【2D Geometry 110 in 1!】
  15. 图像分割网络-M-Net
  16. 腾讯云服务器8核16G18M配置测评
  17. 新型前端学习成长计划路线规划
  18. 每日分享(采集网站访客流量统计程序)
  19. ValueError: Length mismatch: Expected axis has 2 elements, new values have 1 elements
  20. 关于软件中“业务逻辑”的详解

热门文章

  1. MATLAB | 你是猫猫教还是狗狗教还是ikun
  2. DEX文件反汇编工具
  3. CF342D Xenia and Dominoes
  4. 敏捷史话(十):我牺牲了滑雪时间,参加了一场软件革命——Jon Kern
  5. SPI_OLED模块操作方法
  6. 2023最新教你获取mp3音频
  7. clearInterval() 函数详解
  8. 软件架构设计-面向服务的架构设计
  9. 华为设备的交换机接口类型介绍及配置
  10. 【机器学习】k-means算法介绍及简单实现