PHP简单创建压缩图的方法


Posted in PHP onAugust 24, 2016

本文实例讲述了PHP简单创建压缩图的方法。分享给大家供大家参考,具体如下:

<?php
//创建压缩图
function _create_thumbnail($srcFile, $toW, $toH, $toFile="")
{
  if ($toFile == "")
  {
    $toFile = $srcFile;
  }
  $info = "";
  $data = getimagesize($srcFile, $info);
  if (!$data)
    return false;
  //将文件载入到资源变量im中
  switch ($data[2])
  {
    case 1:
      $im = imagecreatefromgif($srcFile);
      break;
    case 2:
      $im = imagecreatefromjpeg($srcFile);
      break;
    case 3:
      $im = imagecreatefrompng($srcFile);
      break;
  }
  //计算缩略图的宽高
  $srcW = imagesx($im);
  $srcH = imagesy($im);
  $toWH = $toW / $toH;
  $srcWH = $srcW / $srcH;
  if ($toWH <= $srcWH)
  {
    $ftoW = $toW;
    $ftoH = (int)($ftoW * ($srcH / $srcW));
  }
  else
  {
    $ftoH = $toH;
    $ftoW = (int)($ftoH * ($srcW / $srcH));
  }
  if (function_exists("imagecreatetruecolor"))
  {
    $ni = imagecreatetruecolor($ftoW, $ftoH); //新建一个真彩色图像
    if ($ni)
    {
      //重采样拷贝部分图像并调整大小 可保持较好的清晰度
      imagecopyresampled($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
    }
    else
    {
      //拷贝部分图像并调整大小
      $ni = imagecreate($ftoW, $ftoH);
      imagecopyresized($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
    }
  }
  else
  {
    $ni = imagecreate($ftoW, $ftoH);
    imagecopyresized($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
  }
  //保存到文件 统一为.png格式
  imagepng($ni, $toFile); //以 PNG 格式将图像输出到浏览器或文件
  ImageDestroy($ni);
  ImageDestroy($im);
}
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php中显示数组与对象的实现代码
Apr 18 PHP
PHP冒泡排序算法代码详细解读
Jul 17 PHP
解析php获取字符串的编码格式的方法(函数)
Jun 21 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
Jul 18 PHP
PHP 5.3新增魔术方法__invoke概述
Jul 23 PHP
PHP类的反射用法实例
Nov 03 PHP
PHP操作文件的一些基本函数使用示例
Nov 18 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
Nov 15 PHP
PHP获取网页所有连接的方法(附demo源码下载)
Mar 30 PHP
php中让人头疼的浮点数运算分析
Oct 10 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
Jul 13 PHP
PHP析构函数destruct与垃圾回收机制的讲解
Mar 22 PHP
php利用header函数下载各种文件
Aug 24 #PHP
php强制下载文件函数
Aug 24 #PHP
PHP简单实现数字分页功能示例
Aug 24 #PHP
PHP自定义函数获取URL中一级域名的方法
Aug 23 #PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
Aug 23 #PHP
PHP简单判断手机设备的方法
Aug 23 #PHP
PHP实现批量检测网站是否能够正常打开的方法
Aug 23 #PHP
You might like
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
JS删除字符串中重复字符方法
2014/03/09 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
实例解析Array和String方法
2016/12/14 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
2016/12/17 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
记一次react前端项目打包优化的方法
2020/03/30 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
详解Django中的form库的使用
2015/07/18 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
Python sorted函数详解(高级篇)
2018/09/18 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
python遍历路径破解表单的示例
2020/11/21 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
澳大利亚运动鞋商店:Platypus Shoes
2019/09/27 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
函授大学生自我鉴定
2014/02/05 职场文书
珠宝店促销方案
2014/03/21 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
2015年电气技术员工作总结
2015/07/24 职场文书
Python爬虫:从m3u8文件里提取小视频的正确操作
2021/05/14 Python
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
SQL中的三种去重方法小结
2021/11/01 SQL Server
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python