//定义必备参数

$path = "./images";

$picname = "6.jpg";

$maxW = 200;

//指定要缩放到的宽度

$maxH = 200;

//指定要缩放到的高度

$pre = "s_";

//缩小之后的图像的前缀

// 准备画布、画笔、颜料

//格式化路径

$path = rtrim($path,"/")."/";

//获取图像的详细信息

$info = getimagesize($path.$picname);

//根据用户上传的图像,生成相对应类型的画布

switch($info[2]){

case 1:

//生成gif格式画布

$oldImg = imagecreatefromgif($path.$picname);

break;

case 2:

//生成jpg格式画布

$oldImg = imagecreatefromjpeg($path.$picname);

break;

case 3:

//生成png格式画布

$oldImg = imagecreatefrompng($path.$picname);

break;

}

//获取原图的宽高

$oldW = imagesx($oldImg);

$oldH = imagesy($oldImg);

//判断那个边比较长,利用较长的边求得比例

if($oldW>$oldH){

//求得比例

$b = $oldW/$maxW;

//获取缩放之后的宽高

$newW = $oldW/$b;

$newH = $oldH/$b;

}else{

//求得比例

$b = $oldH/$maxH;

//获取缩放之后的宽高

$newW = $oldW/$b;

$newH = $oldH/$b;

}

//根据缩放之后的宽高,生成指定大小的画布

$newImg = imagecreatetruecolor($newW,$newH);

// 开始绘画

//将原图缩放到新图当中

imagecopyresampled($newImg,$oldImg,0,0,0,0,$newW,$newH,$oldW,$oldH);

// 输出图像

//根据用户上传的图像的类型,进行输出或另存为

switch($info[2]){

case 1:

imagegif($newImg,$path.$pre.$picname);

break;

case 2:

imagejpeg($newImg,$path.$pre.$picname);

break;

case 3:

imagepng($newImg,$path.$pre.$picname);

break;

}

// 释放资源

imagedestroy($oldImg);

imagedestroy($newImg);

?>

本帖最后由 七彩极 于 2017-6-26 10:33 编辑

分享至:

php gd库 缩小图片_【源码分享】PHP中GD库实现图片等比例缩放相关推荐

  1. 仿QQ右下角弹窗新闻_源码分享

    源码名称:仿QQ右下角弹窗新闻 源码作者:邓学彬(泪闯天涯) 开发环境:Visual Studio 2005  源码说明:Win32(SDK)开发,自绘实现,支持多种皮肤风格.无需其他界面库. 美中不 ...

  2. java商品信息管理系统代码_[源码分享]学生信息管理系统(管理员)

    我一直以为学生信息管理系统是烂大街的,网上一搜一大把的那种 毕竟这种项目是学完C语言之后都可以独立完成的项目,只有界面好看与否的问题 最近好多学生问学生信息管理系统的代码,估计是C语言大作业什么的.然 ...

  3. 集合的get方法中参数从多少开始_源码分析CopyOnWriteArrayList 中的隐藏知识,你Get了吗?...

    欢迎点击 "未读代码" ,关注公众号,文章每周更新 杭州-阿里园区墙 前言 本觉 CopyOnWriteArrayList 过于简单,寻思看名字就能知道内部的实现逻辑,所以没有写这 ...

  4. 基于SpringBoot健身房管理系统_计算机毕业设计_源码分享

    本次推荐的是健身房管理系统,此系统包含了会员管理.教练管理.课程管理.器材管理.物品遗失管理.商品管理以及信息统计等七大功能模块.项目文件结构完整,代码条理清晰.非常适合学习仿写以及二次开发.图片以及 ...

  5. java凭证加盖电子印章_源码分享:在pdf上加盖电子签章

    publicvoidsign(Stringsrc/ /需要签章的pdf文件路径 ,Stringdest/ / 签完章的pdf文件路径 ,ImageDataimg/ / 印章图片 ,intpageNum ...

  6. java制作超炫流星雨表白_[源码分享]C语言浪漫流星雨表白程序!

    01 编码过程设置星星的属性,初始化星星,画星星,进行星星的移动 设置流星的属性,初始化流星 初始化加载数据,通过贴图来画流星,进行流星的移动 设置表白文字 主函数设置数组,加载界面 02 效果展示 ...

  7. JSP 160套_毕业设计_源码分享

    需要的来下载,已分享 链接:https://pan.baidu.com/s/1UGRjxcMd7-5ed38qtGM3rg 提取码:nz0q 复制这段内容后打开百度网盘手机App,操作更方便哦–来自百 ...

  8. GoLang之标准库net/http包源码

    GoLang之标准库net/http包源码 目录 GoLang之标准库net/http包源码 1.net/http包介绍 2.http.ListenAndServe函数 3.http.Handle函数 ...

  9. 一般源码安装添加的GD库 是不支持 jpeg 格式的图片的

    一般源码安装添加的GD库 是不支持 jpeg 格式的图片的,只支持如下格式 GD Support enabled  GD Version bundled (2.0.34 compatible)  GI ...

  10. 从源码分析Android的Glide库的图片加载流程及特点

    转载:http://m.aspku.com/view-141093.html 这篇文章主要介绍了从源码分析Android的Glide库的图片加载流程及特点,Glide库是Android下一款人气很高的 ...

最新文章

  1. centos 重装 php5,centos6.6学习笔记:安装PHP5.5
  2. 2020边缘计算状态报告:2028年企业IT基础设施边缘支出将达87亿美元
  3. php dump utfp,php pchart乱码-使用REST接口获取GeoServer中的...-结合 thinkPHP 分页写成自己分页类_169IT.COM...
  4. crash recovery mysql_InnoDB crash recovery 完整过程
  5. 富文本编辑器:Typora(编辑与预览一体化)
  6. iOS App 崩溃报告符号化,.ips崩溃报告文件分析
  7. c语言打程序时会遇到什么问题,Sublime text3 实现C语言编译运行以及过程中可能遇到的问题...
  8. three.js 求两个vector3 的夹角_初中数学:动点问题-阿氏圆最值模型(2),求PD-1/2PC的最大值...
  9. Oracle12C 怎样导入scott用户
  10. python对象_Python对象()
  11. 中央企业经营管理一体化总体框架
  12. 在Linux下用sopcast/qsopcast收看网络电视
  13. 微信小程序 实现上拉加载
  14. 构建模型——用Python构建logit、负二项回归、决策树与随机森林机器学习模型
  15. (原创)暴力破解西电校园网密码
  16. 遨博机械臂——末端工具ROS驱动
  17. 罗杰斯:不看好房地产股票 最佳投资是大宗商品
  18. 2022年继续乘风破浪
  19. ESP32 / ESP8266 RGB LED灯带配颜色选择器Web服务器
  20. Android 高仿美团外卖详情页

热门文章

  1. Java反射使用的Field类介绍
  2. python隐藏手机号码程序_Python网站手机号码解密的一种方法
  3. Remote Dictionary Server(Redis)——基于 KV 结构的作为 Cache 使用的 NoSQL 数据库管理系统
  4. 二本计算机类专业农村学生出路,农村“二本”大学生有哪些出路?主要出路有四条,第2条可逆袭...
  5. 计算机科学与技术500分左右的大学,全国所有500分左右的211大学
  6. ~2 ccf 2022-03-1 未初始化警告
  7. java洁癖_如何平衡代码洁癖和项目进度?
  8. Zbrush究竟是个什么软件?带你看看ZB的世界
  9. 空气动力研究与发展中心计算机所,中国空气动力研究与发展中心报告.pdf
  10. 无符号数与带符号数的相加减