在向浏览器显示图像之前,如何使用php重新调整图像大小?

在向浏览器显示图像之前,如何使用php重新调整图像大小?,php,image,image-processing,resize,image-resizing,Php,Image,Image Processing,Resize,Image Resizing,我有一些图像有一定的大小,我想缩小它们 我不希望将它们保存为缩放,我希望每次在浏览器中加载图像时重新调整它们的大小 我已经查看了WideImage库和imagecopyresampled 如果我使用WideImage::load($\u GET['img'])->resize(500300)->output('jpg',90)然后我将其回显,我从图像中获取源代码,而不是实际图像 我也提出了这种方法 public function resizeImage($originalImage,$toWid

我有一些图像有一定的大小,我想缩小它们

我不希望将它们保存为缩放,我希望每次在浏览器中加载图像时重新调整它们的大小

我已经查看了
WideImage
库和
imagecopyresampled

如果我使用
WideImage::load($\u GET['img'])->resize(500300)->output('jpg',90)然后我将其回显,我从图像中获取源代码,而不是实际图像

我也提出了这种方法

public function resizeImage($originalImage,$toWidth,$toHeight)
    {

        list($width, $height) = getimagesize($originalImage);
        $xscale=$width/$toWidth;
        $yscale=$height/$toHeight;

        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));
        }


        $imageResized = imagecreatetruecolor($new_width, $new_height);
        $imageTmp     = imagecreatefromjpeg ($originalImage);
        imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

        return $imageResized;
    }
如果我将一个图像传递给它并回显结果,我会得到类型为(gd)
资源(192),而不是图像

另外,我不确定要传递给此方法的图像路径是什么,
http://.....jpg
/var/www/images/…jpg

有人能给这个遮光吗?看起来我真的不明白这个过程是如何运作的


谢谢

将本地文件名传递给方法,而不是url

您需要为要解释为图像的图像设置http头

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

我用的是SimpleImage,非常简单。请看:。但这不是你的问题

您的代码:
返回$imageResized仅返回gd对象,不返回真实图像。您需要对其进行转换,您可以做两件事:

  • 按脚本url加载图像(例如:
    http://localhost/image_converter.php?img=my_img.jpg
  • 以URI模式返回图像数据(使用URI不是一个好的做法,因为您必须使用输出缓冲等…HTML数据非常庞大,因为图像直接在其中…请看:)
  • (使用您的方法的示例)

    您需要使用
    标题('Content-Type:image/jpeg')设置适当的标题。对于GD对象,您必须使用函数
    imagejpeg(资源$image[,字符串$filename[,int$quality]])

    <?php
    /* image_converter.php */
    $image = new Image(); //Will use method in unknown class found by you
    $output = $image->resizeImage($_GET['my_img'],50,50); //We have gd object in $output
    //!! DO NOT USE GET WITHOUT SECURING IT!
    header('Content-Type: image/jpeg');
    imagejpeg($output); //This displays image dataa converted in jpg
    exit;
    ?>
    
    
    

    调用:

    @Patrioticcow您需要将图像的
    src
    设置为只返回图像的php文件。那么您是否尝试在html页面中输出图像?如果是这样的话,
    标签就是这样的for@Patrioticcow,如果不清楚,则图像需要位于其自己的URL,您不能将其嵌入页面中。