サムネイル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";
 ?>