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 22 PHP
PHPMYADMIN 简明安装教程 推荐
Mar 07 PHP
提高define性能的php扩展hidef的安装和使用
Jun 14 PHP
php自动给文章加关键词链接的函数代码
Nov 29 PHP
ThinkPHP单字母函数(快捷方法)使用总结
Jul 23 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 PHP
php字符串替换函数substr_replace()用法实例
Mar 17 PHP
codeigniter中实现一次性加载多个view的方法
Mar 20 PHP
Laravel 5框架学习之Laravel入门和新建项目
Apr 07 PHP
PHP通过API获取手机号码归属地
May 28 PHP
PHP邮件群发机实现代码
Feb 16 PHP
PHP实现简易计算器功能
Aug 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获取文章内容第一张图片的方法示例
2017/07/03 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
慎用 somefunction.prototype 分析
2009/06/02 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
jquery限制输入字数,并提示剩余字数实现代码
2012/12/24 Javascript
jquery入门—访问DOM对象方法
2013/01/07 Javascript
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
2015/02/23 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
2017/05/13 jQuery
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
2019/05/12 jQuery
JavaScript中this函数使用实例解析
2020/02/21 Javascript
jQuery实时统计输入框字数及限制
2020/06/24 jQuery
Python实现子类调用父类的方法
2014/11/10 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
python开发之list操作实例分析
2016/02/22 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
pycharm导入源码的具体步骤
2020/08/04 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
德国网上宠物店:Zoobio
2018/05/23 全球购物
物流管理毕业生自荐信
2013/10/24 职场文书
网上卖盒饭创业计划书
2014/01/26 职场文书
学习交流会主持词
2014/04/01 职场文书
篮球比赛口号
2014/06/10 职场文书
审计班子对照检查材料
2014/08/27 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
刑事附带民事上诉状
2015/05/23 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书
教师外出学习心得体会
2016/01/18 职场文书