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天
Jun 15 PHP
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
Oct 22 PHP
PHP下对数组进行排序的函数
Aug 08 PHP
谨慎使用PHP的引用原因分析
Sep 06 PHP
PHP获取时间排除周六、周日的两个方法
Jun 30 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
php利用smtp类实现电子邮件发送
Oct 30 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
Oct 13 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
Aug 28 PHP
php7下的filesize函数
Sep 30 PHP
laravel 解决路由除了根目录其他都404的问题
Oct 18 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编程之高级技巧——利用Mysql函数
2006/10/09 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
php的ddos攻击解决方法
2015/01/08 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
laravel model 两表联查示例
2019/10/24 PHP
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
js 异步操作回调函数如何控制执行顺序
2013/12/24 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
JQuery弹出层示例可自定义
2014/05/19 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
2019/02/08 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
深入理解Python中装饰器的用法
2016/06/28 Python
Atom的python插件和常用插件说明
2018/07/08 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
python装饰器练习题及答案
2019/11/01 Python
python模拟实现斗地主发牌
2020/01/07 Python
Tensorflow 多线程设置方式
2020/02/06 Python
Python守护进程实现过程详解
2020/02/10 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
ORLY官网:美国专业美甲一线品牌
2019/12/11 全球购物
JSF界面控制层技术
2013/06/17 面试题
测量实习生自我鉴定
2013/09/19 职场文书
纪念建党演讲稿范文
2014/01/13 职场文书
导师推荐信范文
2014/05/09 职场文书
2015年路政工作总结
2015/05/22 职场文书
无婚姻登记记录证明
2015/06/18 职场文书
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
css3 文字断裂效果
2022/04/22 HTML / CSS