服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

PHP简单创建压缩图的方法

2019-06-20 15:31onestopweb PHP教程

这篇文章主要介绍了PHP简单创建压缩图的方法,通过自定义函数实现压缩图像的功能,涉及php图片的读取与图形图像的创建相关技巧,需要的朋友可以参考下

本文实例讲述了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实现会员账号单唯一登录的方法分析

    PHP实现会员账号单唯一登录的方法分析

    这篇文章主要介绍了PHP实现会员账号单唯一登录的方法,结合实例形式分析了php基于session与文件读写的单一用户登陆限制实现技巧,需要的朋友可以参考下...

    JasonHome1452019-06-04
  • PHP教程PHP filesize函数用法浅析

    PHP filesize函数用法浅析

    在本篇文章中我们给大家整理了关于PHP中filesize函数的用法和相关知识点,有需要的朋友们学习下。...

    laozhang4372019-06-14
  • PHP教程Ajax+PHP实现的模拟进度条功能示例

    Ajax+PHP实现的模拟进度条功能示例

    这篇文章主要介绍了Ajax+PHP实现的模拟进度条功能,结合实例形式分析了php结合ajax动态读取文件实现进度条功能的相关操作技巧,需要的朋友可以参考下...

    chengqiuming4702019-06-18
  • PHP教程PHP封装的数据库模型Model类完整示例【基于PDO】

    PHP封装的数据库模型Model类完整示例【基于PDO】

    这篇文章主要介绍了PHP封装的数据库模型Model类,结合实例形式分析了php基于PDO针对mysql数据库常见增删改查、统计、判断等相关操作封装与使用技巧,需要的朋友可以参考下...

    小菜鸟有大梦想2652019-06-01
  • PHP教程php如何比较两个浮点数是否相等详解

    php如何比较两个浮点数是否相等详解

    这篇文章主要给大家介绍了关于php如何比较两个浮点数是否相等的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...

    nemo2792019-06-16
  • PHP教程PHP 7.4.0 首个版本 alpha 1 发布

    PHP 7.4.0 首个版本 alpha 1 发布

    PHP 团队今天 宣布推出 PHP 7.4.0 首个版本 PHP 7.4.0 Alpha 1。 7.4 新特性包括: 预加载 FFI 类属性的类型支持 NULL 合并赋值运算符 弃用 WDDX 扩展 简化匿名函数 新增 mb_str_split 函数 始终可用的 Hash 扩展 有关新功能和其他变更的更多信息,...

    开源中国4182019-06-15
  • PHP教程7种流行PHP集成开发工具(IDE)的比较

    7种流行PHP集成开发工具(IDE)的比较

    本文发掘集成开发环境(IDE)的所有用途,并比较 7 种流行的 IDE 的成本和优势。 编写关于PHP的系列文章让我更加深刻地了解了 PHP 开发人员的世界。我和许多 PHP 程序员交谈过,最令我惊奇的是只有很少的人使用 IDE。大多数程序员使...

    服务器之家1862019-06-03
  • PHP教程PHP检查URL包含特定字符串实例方法

    PHP检查URL包含特定字符串实例方法

    在本篇文章里,小编给大家分享了使用PHP检查URL是否包含特定字符串的相关操作方法,有需要的朋友们学习下。...

    laozhang1652019-06-18