调整图像大小PHP

时间:2014-02-27 02:36:31

标签: php image

我正在使用网址链接调整图片大小,例如:

image.php?name=butterfly&size=1100x1100

例如:

<img src="image.php?name=butterfly&size=1100x1100">

我正在使用的代码是:

<?php
if(isset($_GET['name'])){ //name
    $image['name']  = $_GET['name'];
} else {
    $image['name']  = null;
}
if(isset($_GET['size'])){ //dimensions
    $image['size']  = $_GET['size'];
    $size = explode('x', $image['size']);
    $image['width'] = $size[0];
    $image['height'] = $size[1];
} else {
    $image['size']  = null;
}
if(isset($_GET['text'])){ //text
    $image['text']  = $_GET['text'];
} else {
    $image['text']  = null;
}
// File and new size
$filename = 'images/'.$image["name"].'.jpeg';

// Content type
header('Content-Type: image/jpeg');

// Output
imagecreatefromjpeg($filename);

// Set a maximum height and width
$width = $image['width'];
$height = $image['height'];

// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
   $width = $height*$ratio_orig;
} else {
   $height = $width/$ratio_orig;
}

// Resample
    $image_p = imagecreatetruecolor($width, $height);
    $image = imagecreatefromjpeg($filename);
    imagecopyresized($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
imagejpeg($image_p, null, 100);
?>

我的代码仅适用于一个部分,即宽度,图像的大小调整为宽度而不是高度。此外,当我调整窗口大小时,图片每次都会变小。感谢您的时间,并对任何不好的解释表示抱歉。

2 个答案:

答案 0 :(得分:0)

首先,问题是什么?我没理得。

由于代码的这一部分,代码仅改变其宽度的一个原因:

`if ($width/$height > $ratio_orig) {
   $width = $height*$ratio_orig;
} else {
   $height = $width/$ratio_orig;
}`

只有一种尺寸会发生变化。另外,为什么只改变宽度的另一个原因可能是您具有原始图像和二次分辨率(例如800x600 - 比率1,34),然后您将其更改为更宽的一个(例如1280x720 - 比率1,77)。

希望这有帮助!

答案 1 :(得分:0)

根据您的代码逻辑,在任何给定时间,您的身高或宽度都会发生变化。 我在我当地的主人,宽度&amp;我的图像高度是600 X 400,我通过100X100作为参数,它将图像大小调整为100X66,所以高度确实发生了变化。