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生成静态页
Nov 25 PHP
兼容PHP5的PHP目录管理函数库
Jul 10 PHP
PHP 程序员的调试技术小结
Nov 15 PHP
探讨:使用XMLSerialize 序列化与反序列化
Jun 08 PHP
PHP实现支持SSL连接的SMTP邮件发送类
Mar 05 PHP
thinkphp框架实现数据添加和显示功能
Jun 29 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
php判断文件上传图片格式的实例详解
Sep 30 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
PHP 代码简洁之道(小结)
Oct 16 PHP
THINKPHP5分页数据对象处理过程解析
Oct 28 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 include,include_once,require,require_once
2008/09/05 PHP
php header示例代码(推荐)
2010/09/08 PHP
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
PHP生成树的方法
2015/07/28 PHP
php析构函数的简单使用说明
2015/08/24 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
jquery利用ajax调用后台方法实例
2013/08/23 Javascript
jQuery实现公告文字左右滚动的实例代码
2013/10/29 Javascript
JS中的异常处理方法分享
2013/12/22 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
详谈js模块化规范
2017/07/07 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
vue小白入门教程
2018/04/02 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
python求解汉诺塔游戏
2020/07/09 Python
Django+RestFramework API接口及接口文档并返回json数据操作
2020/07/12 Python
美术师范毕业生自荐信
2013/11/16 职场文书
总经理驾驶员岗位职责
2013/12/04 职场文书
美术指导求职信
2014/03/17 职场文书
党员四风问题个人对照检查材料
2014/10/26 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
2015年绩效考核工作总结
2015/05/23 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书