我一直在尝试用php来调整图片的大小,但是我在使用imageecreatefromjpeg功能时遇到了问题。当我试图显示一个图像时,屏幕上出现了一大堆字符,而不是图像。我也没有看到任何错误。
所以,最初我试着用这个功能来调整图像的大小。显示了一堆随机的字符,所以我想我会简化它来进行调试。
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的第二个参数是路径,而不是图片的名字。我没有意识到imagejpeg中的第二个参数是路径,而不仅仅是图片的名称。在PHP的网站上,参数2在每个实例中都显示为名称,所以我认为这就是全部。
你没有输出一个内容类型的头来指示浏览器你正在发送JPEG图像数据。添加一个
header('Content-type: image/jpeg');
紧接在你的imagejpeg()调用之前。
你是否尝试过使用正确的头?
header('Content-Type: image/jpeg');
你也应该确保在这之前没有输出任何文本。
听起来你是在打印jpeg的原始数据。 我不知道你的预期应用是什么,但你也应该这样做。
header('Content-Type: image/jpeg');