PHP图像调整大小脚本?

时间:2009-11-12 01:46:22

标签: php

好的我是PHP的新手我在下面找到了以下脚本。但我不知道如何使用它我想知道我在哪里链接到图像,例如 images / photo.jpg ,以便让我开始学习这个脚本谢谢。

这是代码。

<?php
function resizeImage($originalImage,$toWidth,$toHeight){

    // Get the original geometry and calculate scales
    list($width, $height) = getimagesize($originalImage);
    $xscale=$width/$toWidth;
    $yscale=$height/$toHeight;

    // Recalculate new size with default ratio
    if ($yscale>$xscale){
        $new_width = round($width * (1/$yscale));
        $new_height = round($height * (1/$yscale));
    }
    else {
        $new_width = round($width * (1/$xscale));
        $new_height = round($height * (1/$xscale));
    }

    // Resize the original image
    $imageResized = imagecreatetruecolor($new_width, $new_height);
    $imageTmp     = imagecreatefromjpeg ($originalImage);
    imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

    return $imageResized;
}
?> 

3 个答案:

答案 0 :(得分:1)

这里有几个潜在的陷阱,所以我会给你一些可能遇到的潜在问题:

  1. 您需要提供图像的完整路径,以便可以阅读。我使用以下脚本:
  2. function getRoot(){
        $cwd = getcwd();
        $splitCwd = explode("/", $cwd);
        $root = "";
        for($count=0; $count<count($splitCwd)-1;$count++){
          $root .= '/' . $splitCwd[$count];
        }
        $root = $root . '/';
        return $root;
    }
    
    

    然后你可以传入(getRoot()。$ image,...)

    1. 创建一个检查文件类型的开关(请参阅我的回答here)。这将允许您调整大小而不仅仅是jpeg,并输出不仅仅是jpeg,这在涉及透明度时很好。

    2. 可能有一个或两个最终参数,即输出文件名。这样,您可以制作缩略图,同时保持原始图像的完整性。在这种情况下,您可以执行imagejpeg(或imagepng等),并在设置新名称参数时将其传递给它。

答案 1 :(得分:0)

您将链接转换为原始JPEG作为函数中的第一个参数,该参数将设置为$ originalImage。

因此,在调用该函数时,您将使用:

resizeImage("images/photo.jpg",800,600);

这两个数字将是您的宽度/高度值。

答案 2 :(得分:0)

您必须添加

,而不是返回行
header('Content-type: image/jpeg');
imagejpeg($imageResized);

或检查http://www.php.net/manual/en/function.imagejpeg.php示例#2保存JPEG图像