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语法(1)
Oct 09 PHP
实用函数9
Nov 08 PHP
php下安装配置fckeditor编辑器的方法
Mar 02 PHP
关于session在PHP5的配置文件中的详细设置参数说明
Apr 20 PHP
控制PHP的输出:缓存并压缩动态页面
Jun 11 PHP
基于PHPExcel的常用方法总结
Jun 13 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
Jun 23 PHP
php文件读取方法实例分析
Jun 20 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
thinkPHP模板中函数的使用方法示例
Nov 30 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
May 13 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
Oct 12 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
php中限制ip段访问、禁止ip提交表单的代码分享
2014/08/22 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
PHP多态代码实例
2015/06/26 PHP
PHP读书笔记整理_结构语句详解
2016/07/01 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
jQuery实现简单全选框
2020/09/13 jQuery
原生js生成图片验证码
2020/10/11 Javascript
python3生成随机数实例
2014/10/20 Python
python列表的常用操作方法小结
2016/05/21 Python
Python遍历文件夹和读写文件的实现方法
2017/05/10 Python
使用python生成目录树
2018/03/29 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
python各类经纬度转换的实例代码
2019/08/08 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
2020/12/04 Python
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
会计专业大学生求职信范文
2014/01/28 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书