PHP实现压缩图片尺寸并转为jpg格式的方法示例

本文实例讲述了PHP实现压缩图片尺寸并转为jpg格式的方法,分享给大家供大家参考,具体如下:

  1. function ImageToJPG($srcFile,$dstFile,$towidth,$toheight)
  2. {
  3. $quality=80;
  4. $data = @GetImageSize($srcFile);
  5. switch ($data['2'])
  6. {
  7. case 1:
  8. $im = imagecreatefromgif($srcFile);
  9. break;
  10. case 2:
  11. $im = imagecreatefromjpeg($srcFile);
  12. break;
  13. case 3:
  14. $im = imagecreatefrompng($srcFile);
  15. break;
  16. case 6:
  17. $im = ImageCreateFromBMP( $srcFile );
  18. break;
  19. }
  20. // $dstX=$srcW=@ImageSX($im);
  21. // $dstY=$srcH=@ImageSY($im);
  22. $srcW=@ImageSX($im);
  23. $srcH=@ImageSY($im);
  24. //$towidth,$toheight
  25. if($toheight/$srcW > $towidth/$srcH){
  26. $b = $toheight/$srcH;
  27. }else{
  28. $b = $towidth/$srcW;
  29. }
  30. //计算出图片缩放后的宽高
  31. // floor 舍去小数点部分,取整
  32. $new_w = floor($srcW*$b);
  33. $new_h = floor($srcH*$b);
  34. $dstX=$new_w;
  35. $dstY=$new_h;
  36. $ni=@imageCreateTrueColor($dstX,$dstY);
  37. @ImageCopyResampled($ni,$im,0,0,0,0,$dstX,$dstY,$srcW,$srcH);
  38. @ImageJpeg($ni,$dstFile,$quality);
  39. @imagedestroy($im);
  40. @imagedestroy($ni);
  41. }
  42. //ImageToJPG('源文件名','目标文件名',目标宽,目标高);
  43. ImageToJPG('test2.png','test2.jpg',80,50);