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 相关文章推荐
10条PHP编程习惯助你找工作
Sep 29 PHP
10个可以简化php开发过程的MySQL工具
Apr 11 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
Apr 12 PHP
php expects parameter 1 to be resource, array given 错误
Mar 23 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
Jun 24 PHP
php类的扩展和继承用法实例
Jun 20 PHP
分享3个php获取日历的函数
Sep 25 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 PHP
mysql alter table命令修改表结构实例详解
Sep 24 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
Jun 07 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
php去除deprecated的实例方法
Nov 17 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 htmlspecialchars加强版
2010/02/16 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
php实现爬取和分析知乎用户数据
2016/01/26 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
2010/03/21 Javascript
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
Bootstrap Table 搜索框和查询功能
2017/11/30 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python中的下划线详解
2015/06/24 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
python 自定义对象的打印方法
2019/01/12 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
基于Python执行dos命令并获取输出的结果
2019/12/30 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
Pandas中DataFrame基本函数整理(小结)
2020/07/20 Python
Python实现自动装机功能案例分析
2020/10/22 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
厨房管理计划书
2014/04/27 职场文书
论文评审意见
2015/06/05 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
毕业欢送晚会主持词
2019/06/25 职场文书