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 相关文章推荐
通过ODBC连接的SQL SERVER实例
Oct 09 PHP
PHP配置心得包含MYSQL5乱码解决
Nov 20 PHP
php中的实现trim函数代码
Mar 19 PHP
使用 MySQL Date/Time 类型
Mar 26 PHP
七款最流行的PHP本地服务器分享
Feb 19 PHP
spl_autoload_register与autoload的区别详解
Jun 03 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
Jun 24 PHP
php正则表达式获取内容所有链接
Jul 24 PHP
CI操作cookie的方法分析(基于helper类库)
Mar 28 PHP
php版微信自动获取收货地址api用法示例
Sep 22 PHP
php实现将HTML页面转换成word并且保存的方法
Oct 14 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 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
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
用php过滤危险html代码的函数
2008/07/22 PHP
JavaScript使用cookie
2007/02/02 Javascript
newxtree.js代码
2007/03/13 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
兼容FF和IE的动态table示例自写
2013/10/21 Javascript
图片上传插件jquery.uploadify详解
2013/11/15 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
微信小程序http连接访问解决方案的示例
2018/11/05 Javascript
JavaScript的变量声明与声明提前用法实例分析
2019/11/26 Javascript
[03:36]2015国际邀请赛第二日现场精彩集锦
2015/08/06 DOTA
python中requests模块的使用方法
2015/04/08 Python
python中的tcp示例详解
2018/12/09 Python
pygame实现五子棋游戏
2019/10/29 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
中医专业应届生求职信
2013/11/17 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
2014年小学教师工作总结
2014/11/10 职场文书
2014年技术员工作总结
2014/11/18 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
同意报考证明
2015/06/17 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书
Python中第三方库Faker的使用详解
2022/04/02 Python