生成缩略图PHP

<?php
    /*
    函数:生成缩略图
  MakeBuild("images/a.jpg","news/b.jpg","100");
    参数:
    echo $BuildFile;   原图 带路径
    echo $newFile;    生成的缩略图 带路径
    echo $File_width;   缩略图宽度值
    echo $File_height;   缩略图高度值 (默认为宽度的比例值)
    echo $rate;     缩略图象品质;
 */
 function MakeBuild($BuildFile,$newFile,$File_width,$File_height=0,$rate=1000) {
    if(!is_file($BuildFile)){
   $this->msg("文件 ".$BuildFile." 不是一个有效的图形文件!nn系统无法生成该文件的缩略图!");
   return false;
    }
    $data = GetImageSize($BuildFile);
    switch($data[2]){
  case 1:
   $im = @ImageCreateFromGIF($BuildFile);
   break;
  case 2:
   $im = @ImageCreateFromJPEG($BuildFile);
   break;
  case 3:
   $im = @ImageCreateFromPNG($BuildFile);
   break;
    }
    if(!$im){
   return false;
    }
    else{
   $srcW = ImageSX($im);  # 取得原图宽度;
   $srcH = ImageSY($im); # 取得原图高度;
   $dstX = 0;
   $dstY = 0;
   
  if($File_height==0){
   $File_height = $File_width/$srcW*$srcH;
  }
   
  if ($srcW*$File_height>$srcH*$File_width){
   $fFile_height = round($srcH*$File_width/$srcW);
   $dstY = floor(($File_height-$fFile_height)/2);
   $fFile_width = $File_width;
  }
  else {
   $fFile_width = round($srcW*$File_height/$srcH);
   $dstX = floor(($File_width-$fFile_width)/2);
   $fFile_height = $File_height;
  }
  $ni = ImageCreateTrueColor($File_width,$File_height);
  $dstX = ($dstX<0)?0:$dstX;
  $dstY = ($dstX<0)?0:$dstY;
  $dstX = ($dstX>($File_width/2))?floor($File_width/2):$dstX;
  $dstY = ($dstY>($File_height/2))?floor($File_height/s):$dstY;
  ImageCopyResized($ni,$im,$dstX,$dstY,0,0,$fFile_width,$fFile_height,$srcW,$srcH);
   
  ImageJpeg($ni,$newFile,$rate); # 生成缩略图;
  imagedestroy($im);     # imagedestroy(resource) 释放image关联的内存
    }
 }
 $srcimage = $_GET['image'];
 $srcimgurl = "./live/data/attachment/forum/".$image;
 $srcimgurl = "./live/data/attachment/forum/201207/30/105704r7zmqhmsltqpqxwh.jpg";
 $srcimgs = explode("/",$image);
 $srcimg = $srcimgs[count($srcimgs)-1];
 $srcimg2 = explode(".",$srcimg);
 $newimg = $srcimg2[0]."_slt.".$srcimg2[1];
 $newimage = str_replace($srcimg,$newimg,$srcimage);
 $newimgurl = str_replace($srcimg,$newimg,$filename);
 MakeBuild($filename,$newimgurl,"600");
 echo "201207/30/105704r7zmqhmsltqpqxwh.jpg";
 ?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值