当前位置:首页 > PHP教程 > php图像处理 > 列表

php 等比例缩小图片

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-19 15:11:53 浏览: 评论:0 

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

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

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

Tags: php等比例 php缩小图片

分享到: