-
php 创建等比例图片代码
说明:$maxwidth和$maxheight只能传递一个,如果传最大宽度将自动计算高度,如果传最大高度将自动计算宽度.
返 回 值:如果创建成功返回文件保存的地址,否则返回false.
php 创建等比例图片代码如下:
- <?php
- /************************************************************************
- * 函数名称:createSmallImg()
- * 函数说明:创建等比例图片
- * 输入参数:
- $dir 保存路径
- $source_img 原图片名称
- $small_ex 缩率图文件名后缀
- $maxwidth 最大宽度
- $maxheight 最大高度
- * 说 明:$maxwidth和$maxheight只能传递一个,如果传最大宽度将自动计算高度,如果传最大高度将自动计算宽度
- * 返 回 值:如果创建成功返回文件保存的地址,否则返回false
- * 编 写 者:李小宇
- * 编写时间:2011/8/18
- **************************************************************************/
- function createSmallImg($dir,$source_img,$small_ex="_s",$maxwidth='',$maxheight='') {
- if(!emptyempty($maxwidth) && !emptyempty($maxheight)) {
- return false;
- }
- $img_name=substr($source_img,0,-4);
- $img_ex = strtolower(substr(strrchr($source_img,"."),1));
- /*注释的这段用作直接在浏览器上显示图片
- $im=imagecreatefromjpeg($file);
- header("Content-type: image/jpeg");
- imagejpeg($im);*/
- switch($img_ex) {
- case "jpg":
- $src_img=imagecreatefromjpeg($dir.$source_img);
- break;
- case "gif":
- $src_img=imagecreatefromgif($dir.$source_img);
- break;
- case "png":
- $src_img=imagecreatefrompng($dir.$source_img);
- break;
- }//开源代码phpfensi.com
- $old_width=imagesx($src_img);
- $old_height=imagesy($src_img);
- if(!emptyempty($maxheight) && $old_height>=$maxheight) {
- $new_height=$maxheight;
- $new_width=round(($old_width*$new_height)/$old_height);
- } elseif(!emptyempty($maxwidth) && $old_width>=$maxwidth) {
- $new_width=$maxwidth;
- $new_height=round(($old_height*$new_width)/$old_width);
- }
- if(!emptyempty($new_width) || !emptyempty($new_height)) {
- if($img_ex=="jpg" || $img_ex=="png") {
- $dst_img=imagecreatetruecolor($new_width,$new_height);
- } else {
- $dst_img=imagecreate($new_width,$new_height);
- }
- imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_width,$new_height,$old_width,$old_height);
- $smallname=$dir.$img_name.$small_ex.".".$img_ex;
- switch($img_ex) {
- case "jpg":
- imagejpeg($dst_img,$smallname,100);
- break;
- case "gif":
- imagegif($dst_img,$smallname);
- break;
- case "png":
- imagepng($dst_img,$smallname);
- break;
- }
- }
- return $smallname;
- }
- ?>
原文链接:http://www.phpfensi.com/php/20140819/4431.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式