欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP简单创建压缩图的方法

程序员文章站 2024-04-03 19:36:40
本文实例讲述了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数组(array)操作技巧大全》、《php数学运算技巧总结》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家php程序设计有所帮助。