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
详解:――如何将图片储存在数据库里
Dec 05 PHP
dede3.1分页文字采集过滤规则详说(图文教程)
Apr 03 PHP
深入Apache与Nginx的优缺点比较详解
Jun 17 PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 PHP
php实现检查文章是否被百度收录
Jan 27 PHP
php计算指定目录下文件占用空间的方法
Mar 13 PHP
php实现模拟登陆方正教务系统抓取课表
May 19 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
Sep 20 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
Sep 02 PHP
php实现图片压缩处理
Sep 09 PHP
PHP如何防止用户重复提交表单
Dec 09 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 将excel导入mysql
2009/11/09 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
Yii2实现ActiveForm ajax提交
2017/05/26 PHP
Jquery中删除元素的实现代码
2011/12/29 Javascript
jquery按回车提交数据的代码示例
2013/11/05 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
JavaScript 详解预编译原理
2017/01/22 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
vue element项目引入icon图标的方法
2018/06/06 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
[51:44]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第二场
2018/04/04 DOTA
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
2019/07/01 Python
python 将dicom图片转换成jpg图片的实例
2020/01/13 Python
python 简单的调用有道翻译
2020/11/25 Python
python中re模块知识点总结
2021/01/17 Python
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
html5表单及新增的改良元素详解
2016/06/07 HTML / CSS
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
兰兰过桥教学反思
2014/02/08 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书
python中Matplotlib绘制直线的实例代码
2021/07/04 Python