imagecreatefromjpeg无法正常工作

时间:2012-05-15 01:15:31

标签: php image gd

我一直在尝试使用php调整图像大小但是我在使用imagecreatefromjpeg函数工作时遇到了问题。当我尝试显示图像时,屏幕上会出现一大堆字符,而不是图像。我也没有看到任何错误。

所以,最初我尝试使用此功能调整图像大小。显示了一堆随机字符,所以我想我会简化调试。

function chgSize($image, $width, $height){
    $name = $image["name"]; //this is displaying the file name correctly
    $temp = $image["tmp_name"];
    $imageContents = imagecreatefromjpeg($temp);
    $blankImage = imagecreatetruecolor(100,100);

    if(imagecopyresampled($blankImage, $imageContents, 0, 0, 0, 0, 100, 100, $width, $height)){ 
        header('Content-type: image/jpeg');
        imagejpeg($blankImage, $name); //name the image and output it

        //$this->saveImage($formattedImage); //save the image, commented out for testing purposes
    }
}

编辑 - 我开始工作了。我没有意识到imagejpeg中的第二个参数是路径,而不仅仅是图像的名称。在PHP的网站上,参数2在每个实例中都显示为名称,所以我认为就是这样。

3 个答案:

答案 0 :(得分:2)

您尚未输出内容类型标题,以向浏览器指示您正在通过JPEG图像数据发送。添加

header('Content-type: image/jpeg');
在你的imagejpeg()调用之前

答案 1 :(得分:1)

您是否尝试使用正确的标题?

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

您还应该确保在此之前不输出任何文字。

答案 2 :(得分:1)

听起来像是在打印jpeg的原始数据。我不确定您的预期应用是什么,但您应该:

  • 将$ imgContents的内容保存到服务器上的文件中,该文件可以通过HTML图片标记提供
  • 输出正确的HTTP标头,指示浏览器接收的文件实际上是JPG,而不是HTML标记或文字:header('Content-Type: image/jpeg');