<?php
//调整图片大小
/**
*图片按比例调整大小的原理:
*1、比较原图大小是否小于等于目标大小,如果是则直接采用原图宽高
*2、如果原图大小超过目标大小,则对比原图宽高大小
*3、如:宽>高,则宽=目标宽, 高=目标宽的比例 * 原高
*4、如:高>宽,则高=目标高,宽=目标高的比例 * 原宽
**/
$image = $_REQUEST['image'];
//$image = 'C:/Documents and Settings/TCM/My Documents/Water lilies.jpg';
$max_width = $_REQUEST['max_width'];
//$max_width = 200;
$max_height = $_REQUEST['max_height'];
//$max_height = 200;
if (!$max_width)
{
$max_width = 80;
}
if (!$max_height)
{
$max_height = 60;
}
$size = getimagesize($image); //得到图像的大小
$width = $size[0];
$height = $size[1];
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if (($width <= $max_width) && ($height <= $max_height))
{
$tn_width = $width;
$tn_height = $height;
}
elseif (($x_ratio * $height) < $max_height)
{
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else
{
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
$src = imagecreatefromjpeg($image);
$dst = imagecreatetruecolor($tn_width, $tn_height); //新建一个真彩色图像
imagecopyresampled($dst, $src, 0, 0, 0, 0,
$tn_width, $tn_height, $width, $height); //重采样拷贝部分图像并调整大小
header('Content-Type: image/jpeg');
imagejpeg($dst,null,100);
imagedestroy($src);
imagedestroy($dst);
?>
本文介绍了一种PHP脚本实现的图片按比例缩放的方法。该方法首先获取原始图片的尺寸,然后根据指定的最大宽度和高度调整图片尺寸,确保图片在保持原有长宽比的同时,不超过指定的最大尺寸。
260

被折叠的 条评论
为什么被折叠?



