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 相关文章推荐
提问的智慧(2)
Oct 09 PHP
php中的数组操作函数整理
Aug 18 PHP
Array of country list in PHP with Zend Framework
Oct 17 PHP
dedecms函数分享之获取某一栏目所有子栏目
May 19 PHP
php实现根据url自动生成缩略图的方法
Sep 23 PHP
php计算数组相同值出现次数的代码(array_count_values)
Jan 20 PHP
PHP实现原生态图片上传封装类方法
Nov 08 PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
PHP读取目录树的实现方法分析
Mar 22 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 PHP
PHP代码覆盖率统计详解
Jul 22 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
输出控制类
2006/10/09 PHP
PHP完整的日历类(CLASS)
2006/11/27 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
js 文件引入实现代码
2010/04/23 Javascript
Javascript延迟执行实现方法(setTimeout)
2010/12/30 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
2013/05/13 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
javascript实现playfair和hill密码算法
2014/12/07 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
JS实现简易刻度时钟示例代码
2017/03/11 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
javascript网页随机点名实现过程解析
2019/10/15 Javascript
Vue实现剪切板图片压缩功能
2020/02/04 Javascript
使用Python脚本实现批量网站存活检测遇到问题及解决方法
2016/10/11 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
2018/04/02 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
2018/11/06 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
python如何导入依赖包
2020/07/13 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
Python sqlalchemy时间戳及密码管理实现代码详解
2020/08/01 Python
python中温度单位转换的实例方法
2020/12/27 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
调查研究项目计划书
2014/04/29 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
高考标语大全
2014/06/05 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
2015年护士节慰问信
2015/03/23 职场文书
一文解答什么是MySQL的回表
2022/08/05 MySQL