欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php 等比例缩小图片

程序员文章站 2022-05-06 18:33:51
...
php 等比例缩小图片 本文章收藏了四款关于利用php 等比例缩小图片代码函数,我们可定义图片宽度或高度对图片缩小或放大的图片宽度哦,好了看看四款实例那一款适合于你吧。

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

function imageresize2($width, $height, $targetw, $targeth)
{
$percentage = 1;
if (($width > $targetw) || ($height > $targeth))
{
$width_diff = $width - $targetw;
$height_diff = $height - $targeth;

if ($width_diff >= $height_diff)
{
$percentage = ($targetw / $width);
}
else
{
$percentage = ($targeth / $height);
}
}
//gets the new value and applies the percentage, then rounds the value
$width = round($width * $percentage);
$height = round($height * $percentage);
$resize[0] = $width;
$resize[1] = $height;
return $resize;
}

//方法二

if (!$max_width)
$max_width = 240;
if (!$max_height)
$max_height = 200;

$size = getimagesize($image);
$width = $size[0];
$height = $size[1];

$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;

if ( ($width $tn_width = $width;
$tn_height = $height;
}
else if (($x_ratio * $height) $tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}

$src = imagecreatefrompng($image);
$dst = imagecreate($tn_width,$tn_height);
imagecopyresized($dst, $src, 0, 0, 0, 0,
$tn_width,$tn_height,$width,$height);
header("content-type: image/png");
imagepng($dst, null, -1);
imagedestroy($src);
imagedestroy($dst);

//方法三

/*
函数原型如下:
参数说明:
$oldwidth:原图片宽度
$oldheight:原图片高度
$imgwidth:缩小或放大的图片宽度
$imgheight:缩小或放大的图片高度
返回:wwww.bKjia.c0m
数组:arraysize ,其中索引为:width 和height 即:arraysize['width']、arraysize['height']
*/
function getimgsize($oldwidth,$oldheight,$imgwidth,$imgheight)
{
//$oldwidth设置的宽度,$oldheight设置的高度,$imgwidth图片的宽度,$imgheight图片的高度;

//单元格装得能装得进图片,则按图片的真实大小显示;
if($imgwidth {
$arraysize=array('width'=>$imgwidth,'height'=>$imgheight);
return $arraysize;
}
else
{
$suoxiaowidth=$imgwidth-$oldwidth;
$suoxiaoheight=$imgheight-$oldheight;
$suoxiaoheightper=$suoxiaoheight/$imgheight;
$suoxiaowidthper=$suoxiaowidth/$imgwidth;
if($suoxiaoheightper>=$suoxiaowidthper)
{
//单元格高度为准;
$aftersuoxiaowidth=$imgwidth*(1-$suoxiaoheightper);
$arraysize=array('width'=>$aftersuoxiaowidth,'height'=>$oldheight);
return $arraysize;
}
else
{
//单元格宽度为准;
$aftersuoxiaoheight=$imgheight*(1-$suoxiaowidthper);
$arraysize=array('width'=>$oldwidth,'height'=>$aftersuoxiaoheight);
return $arraysize;
}
}
}

?>