首页 > 语言 > PHP > 正文

php大图生成小图代码

2024-09-04 11:44:22
字体:
来源:转载
供稿:网友

这是一款利用php自带的功能把指定的大图生成我们指定大小的缩略图代码,使用方便简单,只要把设置下面四个参数就可以生成自己想的大小的缩略图了,代码如下:

  1. function bigtosmallimg($file,$path,$w=120,$h=90) 
  2.  $img=$path.$file
  3.  $imgarr=getimagesize($img); 
  4.  $sw=$imgarr[0];//原图宽 
  5.  $sh=$imgarr[1];//原图高 
  6.  $stype=$imgarr[2]; 
  7.  //按比例缩放 
  8.  if($sw/$sh>$w/$h){ 
  9.   $mw=$w
  10.   $mh=(int)$sh*($w/$sw); 
  11.  } 
  12.  else
  13.   $mw=(int)$sw*($h/$sh); 
  14.   $mh=$h
  15.  } 
  16.  
  17.  switch($stype){//根据上传好的图形文件类型新建一个用来生成缩略图的源文件。  
  18.    case 1:  
  19.     $srcf = imagecreatefromgif($img);  
  20.     break;  
  21.    case 2:  
  22.     $srcf = imagecreatefromjpeg($img);  
  23.     break;  
  24.    case 3:  
  25.     $srcf = imagecreatefrompng($img);  
  26.     break;  
  27.    default:  
  28.     showmsg('程序调用错误。');  
  29.     break;  
  30.  } 
  31.  
  32.  $desf =imagecreatetruecolor($mw,$mh); 
  33.  
  34.  imagecopyresampled($desf,$srcf,0,0,0,0,$mw,$mh,$sw,$sh);  
  35.  $sm_name=$path."s_".$file
  36.  switch($stype){  
  37.   case 1:  
  38.    imagegif($desf,$sm_name);  
  39.    break;  
  40.   case 2:  
  41.    imagejpeg($desf,$sm_name);  
  42.    break;  
  43.   case 3:  
  44.    imagepng($desf,$sm_name);  
  45.    break;  
  46.   default:  
  47.    showmsg('无法生成www.Vevb.com' . $stype . '的缩略图。');  
  48.    break;  
  49.  }  
  50.  imagedestroy($desf);  
  51.  imagedestroy($srcf); 
  52.  
  53. //开源代码Vevb.com 
  54. //此缩略图调用方法,代码如下: 
  55.  
  56. bigtosmallimg($file,$path,$w=120,$h=90); 
  57. /* 
  58. $file = 图片的路径 
  59. $path = 生成后保存的路径 
  60. $w =图片宽度 
  61. $h =图片高度 
  62. */ 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表