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用户指南-cookies部分
Oct 09 PHP
PHP中英混合字符串截取函数代码
Jul 17 PHP
php中inlcude()性能对比详解
Sep 16 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
PHP源码分析之变量的存储过程分解
Jul 03 PHP
php实现redis数据库指定库号迁移的方法
Jan 14 PHP
PHP实现从远程下载文件的方法
Mar 12 PHP
100行PHP代码实现socks5代理服务器
Apr 28 PHP
php使用文本统计访问量的方法
May 12 PHP
php数据结构之顺序链表与链式线性表示例
Jan 22 PHP
PHP实现微信红包金额拆分试玩的算法示例
Apr 07 PHP
PHP实现的支付宝支付功能示例
Mar 26 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读取和编写XML DOM的实现代码
2011/02/03 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
2015/06/03 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
2019/04/02 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
实例解析Array和String方法
2016/12/14 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
详解Vue底部导航栏组件
2019/05/02 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
vue.js封装switch开关组件的操作
2020/10/26 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
2020/11/05 Javascript
Python获取远程文件大小的函数代码分享
2014/05/13 Python
python获取标准北京时间的方法
2015/03/24 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
详解python statistics模块及函数用法
2019/10/27 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
Html5 FileReader实现即时上传图片功能实例代码
2014/09/01 HTML / CSS
英国最大的独立摄影零售商:Park Cameras
2019/11/27 全球购物
机械制造与自动化应届生求职信
2013/11/16 职场文书
企划主管岗位职责
2013/12/12 职场文书
校园公益广告语
2014/03/13 职场文书
公司经理聘任书
2014/03/29 职场文书
三方协议书范本
2014/04/22 职场文书