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程序中的常见漏洞进行攻击(上)
Oct 09 PHP
PHP执行linux系统命令的常用函数使用说明
Apr 27 PHP
php IP转换整形(ip2long)的详解
Jun 06 PHP
PHP+JS实现大规模数据提交的方法
Jul 02 PHP
PHP整合七牛实现上传文件
Jul 03 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
Dec 29 PHP
PHP开发的微信现金红包功能示例
Jun 29 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
Apr 10 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
Oct 08 PHP
PHP延迟静态绑定使用方法实例解析
Sep 05 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
YII中assets的使用示例
2014/07/31 PHP
php绘制一条弧线的方法
2015/01/24 PHP
使用Huagepage和PGO来提升PHP7的执行性能
2015/11/30 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
xml和web特殊字符
2009/04/28 Javascript
ListBox实现上移,下移,左移,右移的简单实例
2014/02/13 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
图解prototype、proto和constructor的三角关系
2016/07/31 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
Node.js中process模块常用的属性和方法
2016/12/13 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
利用vue开发一个所谓的数独方法实例
2017/12/21 Javascript
Nginx 配置多站点vhost 的方法
2018/01/07 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
2019/08/30 Python
Django使用Profile扩展User模块方式
2020/05/14 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
英国文胸专家:AmpleBosom.com
2018/02/06 全球购物
TheFork葡萄牙:欧洲领先的在线餐厅预订平台
2019/05/27 全球购物
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
实习生体会的自我评价范文
2013/11/28 职场文书
校车安全责任书
2014/08/25 职场文书
Python基于百度AI实现抓取表情包
2021/06/27 Python
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS