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 相关文章推荐
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
Aug 02 PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
Jun 23 PHP
php MessagePack介绍
Oct 06 PHP
PHP与Java进行通信的实现方法
Oct 21 PHP
使用php语句将数据库*.sql文件导入数据库
May 05 PHP
在WordPress的文章编辑器中设置默认内容的方法
Dec 29 PHP
php版微信返回用户text输入的方法
Nov 14 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
Mar 09 PHP
PHP后期静态绑定实例浅析
Dec 21 PHP
Laravel框架创建路由的方法详解
Sep 04 PHP
一次项目中Thinkphp绕过禁用函数的实战记录
Nov 17 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正则的Unknown Modifier错误解决方法
2010/03/02 PHP
php简单定时执行任务的实现方法
2015/02/23 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
PHP中trim()函数简单使用指南
2015/04/16 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
简单的Jquery全选功能
2013/11/07 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
JavaScript实现99乘法表及隔行变色实例代码
2016/02/24 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
基于vue.js实现的分页
2018/03/13 Javascript
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
Python中正则表达式的用法总结
2019/02/22 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
2012/10/20 HTML / CSS
植物选择:Botanic Choice
2017/02/15 全球购物
世界上最好的精品店:Shoptiques
2018/02/05 全球购物
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
事业单位请假制度
2014/01/13 职场文书
公司总经理岗位职责
2014/03/15 职场文书
工会优秀工作者事迹
2014/08/17 职场文书
公司授权委托书范文
2014/09/21 职场文书
nginx+lua单机上万并发的实现
2021/05/31 Servers
PyTorch中的torch.cat简单介绍
2022/03/17 Python