首页 > 语言 > PHP > 正文

php 等比例缩小图片

2024-09-04 11:44:20
字体:大 中 小
来源:转载
供稿:网友

本文章收藏了四款关于利用php等比例缩小图片代码函数,我们可定义图片宽度或高度对图片缩小或放大的图片宽度,好了看看四款实例那一款适合于你吧.

php 等比例缩小图片实例代码如下:

  1. function imageresize2($width, $height, $targetw, $targeth)  
  2. { 
  3.   $percentage = 1; 
  4.   if (($width > $targetw) || ($height > $targeth)) 
  5.   { 
  6.  $width_diff = $width - $targetw; 
  7.  $height_diff = $height - $targeth; 
  8.   
  9.  if ($width_diff >= $height_diff) 
  10.  { 
  11.   $percentage = ($targetw / $width); 
  12.  } 
  13.  else 
  14.  { 
  15.   $percentage = ($targeth / $height); 
  16.  } 
  17.   } 
  18.  //gets the new value and applies the percentage, then rounds the value 
  19.  $width = round($width * $percentage); 
  20.  $height = round($height * $percentage); 
  21.  $resize[0] = $width; 
  22.  $resize[1] = $height; 
  23.  return $resize; 
  24. } 
  25.  
  26. //方法二 
  27.  
  28. if (!$max_width)    
  29.   $max_width = 240;    
  30. if (!$max_height)    
  31.   $max_height = 200;    
  32.    
  33. $size = getimagesize($image);    
  34. $width = $size[0];    
  35. $height = $size[1];    
  36.    
  37. $x_ratio = $max_width / $width;    
  38. $y_ratio = $max_height / $height;    
  39.    
  40. if ( ($width <= $max_width) && ($height <= $max_height) ) {    
  41.   $tn_width = $width;    
  42.   $tn_height = $height;    
  43. }    
  44. else if (($x_ratio * $height) < $max_height) {    
  45.   $tn_height = ceil($x_ratio * $height);    
  46.   $tn_width = $max_width;    
  47. }    
  48. else {    
  49.   $tn_width = ceil($y_ratio * $width);    
  50.   $tn_height = $max_height;    
  51. }    
  52.    
  53. $src = imagecreatefrompng($image);    
  54. $dst = imagecreate($tn_width,$tn_height);    
  55. imagecopyresized($dst, $src, 0, 0, 0, 0,    
  56.     $tn_width,$tn_height,$width,$height);    
  57. header("content-type: image/png");    
  58. imagepng($dst, null, -1);    
  59. imagedestroy($src);    
  60. imagedestroy($dst);   
  61.  
  62. //方法三 
  63.  
  64. /* 
  65. 函数原型如下: 
  66. 参数说明: 
  67. $oldwidth:原图片宽度 
  68. $oldheight:原图片高度 
  69. $imgwidth:缩小或放大的图片宽度 
  70. $imgheight:缩小或放大的图片高度 
  71. 返回:wwww.Vevb.com 
  72. 数组:arraysize ,其中索引为:width 和height 即:arraysize['width']、arraysize['height'] 
  73. */ 
  74. function getimgsize($oldwidth,$oldheight,$imgwidth,$imgheight) 
  75. { 
  76. //$oldwidth设置的宽度,$oldheight设置的高度,$imgwidth图片的宽度,$imgheight图片的高度; 
  77.  
  78. //单元格装得能装得进图片,则按图片的真实大小显示; 
  79. if($imgwidth<=$oldwidth&&$imgheight<=$oldheight) 
  80. { 
  81. $arraysize=array('width'=>$imgwidth,'height'=>$imgheight); 
  82. return $arraysize; 
  83. } 
  84. else 
  85. { 
  86. $suoxiaowidth=$imgwidth-$oldwidth; 
  87. $suoxiaoheight=$imgheight-$oldheight; 
  88. $suoxiaoheightper=$suoxiaoheight/$imgheight; 
  89. $suoxiaowidthper=$suoxiaowidth/$imgwidth; 
  90. if($suoxiaoheightper>=$suoxiaowidthper) 
  91. { 
  92. //单元格高度为准; 
  93. $aftersuoxiaowidth=$imgwidth*(1-$suoxiaoheightper); 
  94. $arraysize=array('width'=>$aftersuoxiaowidth,'height'=>$oldheight); 
  95. return $arraysize; 
  96. } 
  97. else 
  98. {  
  99. //单元格宽度为准; 
  100. $aftersuoxiaoheight=$imgheight*(1-$suoxiaowidthper); 
  101. $arraysize=array('width'=>$oldwidth,'height'=>$aftersuoxiaoheight); 
  102. return $arraysize; 
  103. } 
  104. } 
  105. } 

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