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的开发框架的现状和展望
Mar 16 PHP
php 表单数据的获取代码
Mar 10 PHP
php中将字符串转为HTML的实体引用的一个类
Feb 03 PHP
php记录代码执行时间(实现代码)
Jul 05 PHP
百度ping方法使用示例 自动ping百度
Jan 26 PHP
php获取参数的几种方法总结
Feb 18 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
Jan 07 PHP
PHP实现基于mysqli的Model基类完整实例
Apr 08 PHP
windows7配置Nginx+php+mysql的详细教程
Sep 04 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
Mar 17 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
PHP7基于curl实现的上传图片功能
May 11 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基于Closure类创建匿名函数的方法详解
2017/08/17 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
2020/03/02 PHP
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
在JS方法中返回多个值的方法汇总
2015/05/20 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
2018/08/31 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
基于python实现百度翻译功能
2019/05/09 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
总经理职责范文
2013/11/08 职场文书
车队司机自我鉴定
2014/03/02 职场文书
教师远程培训感言
2014/03/06 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
爱情保证书
2015/01/17 职场文书
2015年治庸问责工作总结
2015/07/27 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
安装Ruby和 Rails的详细步骤
2022/04/19 Ruby