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 相关文章推荐
ASP知识讲座四
Oct 09 PHP
PHP读取MySQL数据代码
Jun 05 PHP
PHP 截取字符串专题集合
Aug 19 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
Aug 15 PHP
深入了解PHP类Class的概念
Jun 14 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
Feb 13 PHP
2个Codeigniter文件批量上传控制器写法例子
Jul 25 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 PHP
php使用文本统计访问量的方法
May 12 PHP
PHP中include()与require()的区别说明
Feb 14 PHP
在php的yii2框架中整合hbase库的方法
Sep 20 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
Apr 10 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
laravel手动创建数组分页的实现代码
2018/06/07 PHP
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
2011/11/02 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
2012/04/14 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
jquery插件autocomplete用法示例
2016/07/01 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
详解AngularJS脏检查机制及$timeout的妙用
2017/06/19 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
mui上拉加载更多下拉刷新数据的封装过程
2017/11/03 Javascript
浅析Visual Studio Code断点调试Vue
2018/02/27 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
[49:41]NB vs NAVI Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
python操作xml文件示例
2014/04/07 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
Python实现上下文管理器的方法
2020/08/07 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
高二地理教学反思
2014/01/24 职场文书
大型演出策划方案
2014/05/28 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
任长霞观后感
2015/06/16 职场文书
Python爬虫基础初探selenium
2021/05/31 Python
python使用matplotlib绘制图片时x轴的刻度处理
2021/08/30 Python
win10如何快速切换窗口 win10切换窗口快捷键分享
2022/07/23 数码科技