ホームページ  >  記事  >  バックエンド開発  >  サムネイル関数を生成するためのPHP画像スケーリングの例

サムネイル関数を生成するためのPHP画像スケーリングの例

WBOY
WBOYオリジナル
2016-07-25 08:53:18913ブラウズ
  1. /*
  2. *@im //拡大縮小が必要な画像リソース
  3. *@filetype //生成されるサムネイルファイルの種類
  4. *@dstimW //拡大縮小された画像の幅
  5. * @dstimH //ズームした画像の高さ
  6. *@thumbname //サムネイルファイル名
  7. // WWW.JBXUE.COM
  8. function makethumb($im,$dstimW,$dstimH,$thumbname,$filetype){
  9. //Get im
  10. $pic_W=imagesx($im);
  11. $pic_H=imagesy($im);
  12. $arr = array();
  13. swith($filetype){
  14. case 'jpg':
  15. $arr の幅と高さ[$ filetype]="imagejpeg";
  16. break;
  17. case 'png';
  18. $arr[$filetype]="imagepng";
  19. break;
  20. case 'jif';
  21. $arr[$filetype]="imagegif" ;
  22. }
  23. if(($dstimgW && $dstimgW<$pic_W) || ($dstimgH && $dstimgH<$pic_H) ){
  24. if($dstimgW && $dstimgW<$pic_W){
  25. $dsimgWratio = $dstimgW / $pic_w ;
  26. $resizereagW =true;
  27. }
  28. if($dstimgH && $ $dstimgH <$pic_H){
  29. $dsimgHratio = $dstimgH/$pic_H;
  30. $resizerreagH =true;
  31. }
  32. //サムネイルの幅と元の画像のアスペクト比については、最小のものを選択します
  33. if($resizereagW && $resizerreagH){
  34. if($dsimgWratio<$dsimgHratio)
  35. $radio = $dsimgWratio;
  36. else
  37. $radio = $dsimgHratio; if( $resizereagW && !$resizerreagH ){
  38. $radio = $dsimgWratio;
  39. }
  40. if(!$resizereagW && $resizerreagH){
  41. $radio = $dsimgHratio ;
  42. }
  43. $imgnewW = $pic_W * $radio;
  44. $imgnewH = $pic_H * $radio;
  45. if(function_exists("imgcopyresampled")){
  46. //ターゲットリソース Canvas を作成
  47. $dst = imagecreatetruecolor ($imgnewW, $imgnewH);
  48. imagecopyresampled ($dst,$im, 0,0 ,0,0,$imgnewW,$imgnewH,$pic_W,$pic_H);
  49. }else{
  50. $dst=imagecreate($imgnewW, $imgnewH);
  51. imagecopyresize ($dst, $im,0,0 ,0, 0,$imgnewW,$imgnewH,$imgnewH,$pic_W,$pic_H);
  52. }
  53. $arr[$filetype]($dst,$thumbname.".$filetype");
  54. imagedestroy ($dst) ;
  55. } else{//サムネイル自体の幅と高さは、すでに元の画像の幅と高さよりも大きくなっています
  56. //サムネイルの幅と高さは、元の画像の幅と高さになります
  57. $arr [$filetype] ($im,$thumbname.".$filetype");
  58. imagedestroy();
  59. }
  60. }
  61. ?>
コードをコピー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。