php语言 百分网手机站

PHP用GD库生成高质量的缩略图片

时间:2020-08-06 09:29:24 php语言 我要投稿

PHP用GD库生成高质量的缩略图片

  PHP用GD库生成高质量的缩略图片,PHP一般情况下生成的`缩略图都比较不理想。今天试用PHP,GD库来生成缩略图。虽然并不100%完美。可是也应该可以满足缩略图的要求了。

  以下是PHP源代码(ResizeImage.php)。

  复制代码 代码如下:

  <?php

  $FILENAME="image.thumb";

  // 生成图片的宽度

  $RESIZEWIDTH=400;

  // 生成图片的高度

  $RESIZEHEIGHT=400;

  function ResizeImage($im,$maxwidth,$maxheight,$name){

  $width = imagesx($im);

  $height = imagesy($im);

  if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)){

  if($maxwidth && $width > $maxwidth){

  $widthratio = $maxwidth/$width;

  $RESIZEWIDTH=true;

  }

  if($maxheight && $height > $maxheight){

  $heightratio = $maxheight/$height;

  $RESIZEHEIGHT=true;

  }

  if($RESIZEWIDTH && $RESIZEHEIGHT){

  if($widthratio < $heightratio){

  $ratio = $widthratio;

  }else{

  $ratio = $heightratio;

  }

  }elseif($RESIZEWIDTH){

  $ratio = $widthratio;

  }elseif($RESIZEHEIGHT){

  $ratio = $heightratio;

  }

  $newwidth = $width * $ratio;

  $newheight = $height * $ratio;

  if(function_exists("imagecopyresampled")){

  $newim = imagecreatetruecolor($newwidth, $newheight);

  imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

  }else{

  $newim = imagecreate($newwidth, $newheight);

  imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

  }

  ImageJpeg ($newim,$name . ".jpg");

  ImageDestroy ($newim);

  }else{