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可能遇到的问题“无法载入mysql扩展” 的解决方法
Apr 16 PHP
php对mongodb的扩展(初出茅庐)
Nov 11 PHP
PHP图像处理类库及演示分享
May 17 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 PHP
Yii2 assets清除缓存的方法
May 16 PHP
PHPCMS2008广告模板SQL注入漏洞修复
Oct 11 PHP
php批量修改表结构实例
May 24 PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 PHP
PHP微商城开源代码实例
Mar 27 PHP
goto语法在PHP中的使用教程
Sep 17 PHP
php框架知识点的整理和补充
Mar 01 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也可以?成Shell Script
2006/10/09 PHP
将一维或多维的数组连接成一个字符串的php代码
2010/08/08 PHP
php常用数学函数汇总
2014/11/21 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
php图像生成函数之间的区别分析
2012/12/06 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
微信小程序 实现点击添加移除class
2017/06/12 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
2017/06/22 Javascript
JS设计模式之状态模式概念与用法分析
2018/02/05 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
vue+AI智能机器人回复功能实现
2020/07/16 Javascript
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
python中requests和https使用简单示例
2018/01/18 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
Python 最强编辑器详细使用指南(PyCharm )
2019/09/16 Python
如何用python处理excel表格
2020/06/09 Python
Python定义一个函数的方法
2020/06/15 Python
NUK奶瓶美国官网:NUK美国
2016/09/26 全球购物
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
园林技术个人的自我评价
2014/01/08 职场文书
大学校园活动策划书
2014/02/04 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
房屋继承公证书
2014/04/10 职场文书
2014年社区工作总结
2014/11/18 职场文书
公司感谢信范文
2015/01/22 职场文书
检讨书格式
2015/05/07 职场文书
教师节联欢会主持词
2015/07/04 职场文书
终止合同协议书范本
2016/03/22 职场文书
详解python的内存分配机制
2021/05/10 Python
Pycharm远程调试和MySQL数据库授权问题
2022/03/18 MySQL