目录
PHP 对png 图像进行缩放,支持透明背景
首页 后端开发 php教程 PHP 对png 图像进行缩放,支持透明背景_PHP教程

PHP 对png 图像进行缩放,支持透明背景_PHP教程

Jul 13, 2016 am 10:22 AM
php png 图像 支持 缩放 背景 进行 透明

PHP 对png 图像进行缩放,支持透明背景

   PHP 对 png 图像进行缩放,支持透明背景

  function smart_resize_image( $file, $width = 0, $height = 0, $proportional = false, $output = 'file', $delete_original = true, $use_linux_commands = false )

  {

  if ( $height

  return false;

  }

  $info = getimagesize($file);

  $image = '';

  $final_width = 0;

  $final_height = 0;

  list($width_old, $height_old) = $info;

  if ($proportional) {

  if ($width == 0) $factor = $height/$height_old;

  elseif ($height == 0) $factor = $width/$width_old;

  else $factor = min ( $width / $width_old, $height / $height_old);

  $final_width = round ($width_old * $factor);

  $final_height = round ($height_old * $factor);

  }

  else {

  $final_width = ( $width

  $final_height = ( $height

  }

  switch ($info[2] ) {

  case IMAGETYPE_GIF:

  $image = imagecreatefromgif($file);

  break;

  case IMAGETYPE_JPEG:

  $image = imagecreatefromjpeg($file);

  break;

  case IMAGETYPE_PNG:

  $image = imagecreatefrompng($file);

  break;

  default:

  return false;

  }

  $image_resized = imagecreatetruecolor( $final_width, $final_height );

  if ( ($info[2] == IMAGETYPE_GIF) || ($info[2] == IMAGETYPE_PNG) ) {

  $trnprt_indx = imagecolortransparent($image);

  // If we have a specific transparent color

  if ($trnprt_indx >= 0) {

  // Get the original image's transparent color's RGB values

  $trnprt_color = imagecolorsforindex($image, $trnprt_indx);

  // Allocate the same color in the new image resource

  $trnprt_indx = imagecolorallocate($image_resized, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);

  // Completely fill the background of the new image with allocated color.

  imagefill($image_resized, 0, 0, $trnprt_indx);

  // Set the background color for new image to transparent

  imagecolortransparent($image_resized, $trnprt_indx);

  }

  // Always make a transparent background color for PNGs that don't have one allocated already

  elseif ($info[2] == IMAGETYPE_PNG) {

  // Turn off transparency blending (temporarily)

  imagealphablending($image_resized, false);

  // Create a new transparent color for image

  $color = imagecolorallocatealpha($image_resized, 0, 0, 0, 127);

  // Completely fill the background of the new image with allocated color.

  imagefill($image_resized, 0, 0, $color);

  // Restore transparency blending

  imagesavealpha($image_resized, true);

  }

  }

  imagecopyresampled($image_resized, $image, 0, 0, 0, 0, $final_width, $final_height, $width_old, $height_old);

  if ( $delete_original ) {

  if ( $use_linux_commands )

  exec('rm '.$file);

  else

  @unlink($file);

  }

  switch ( strtolower($output) ) {

  case 'browser':

  $mime = image_type_to_mime_type($info[2]);

  header("Content-type: $mime");

  $output = NULL;

  break;

  case 'file':

  $output = $file;

  break;

  case 'return':

  return $image_resized;

  break;

  default:

  break;

  }

  switch ($info[2] ) {

  case IMAGETYPE_GIF:

  imagegif($image_resized, $output);

  break;

  case IMAGETYPE_JPEG:

  imagejpeg($image_resized, $output);

  break;

  case IMAGETYPE_PNG:

  imagepng($image_resized, $output);

  break;

  default:

  return false;

  }

  return true;

  }

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/848344.htmlTechArticlePHP 对png 图像进行缩放,支持透明背景 PHP 对 png 图像进行缩放,支持透明背景 function smart_resize_image( $file, $width = 0, $height = 0, $proportional =...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和时间

CakePHP 项目配置 CakePHP 项目配置 Sep 10, 2024 pm 05:25 PM

CakePHP 项目配置

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

CakePHP 文件上传

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

讨论 CakePHP

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发

See all articles