从客户端收到图像后,我想调整大小然后存储它。 我正在使用这个功能:
function PIPHP_ImageResize($image, $w, $h)
{
$oldw = imagesx($image);
$oldh = imagesy($image);
$temp = imagecreatetruecolor($w, $h);
imagecopyresampled($temp, $image, 0, 0, 0, 0,
$w, $h, $oldw, $oldh);
return $temp;
}
$image = PIPHP_ImageResize($_FILES['file']['tmp_name'],10,10);
move_uploaded_file($image, $newname);
不幸的是我得到了这些警告:
我怎么能解决问题!!
答案 0 :(得分:0)
imagesx
期望将图像资源作为第一个参数。您必须使用相应的函数创建一个,例如imagecreatefromjpeg或imagecreatefrompng。
function PIPHP_ImageResize($image, $w, $h)
{
$oldw = imagesx($image);
$oldh = imagesy($image);
$temp = imagecreatetruecolor($w, $h);
imagecopyresampled($temp, $image, 0, 0, 0, 0, $w, $h, $oldw, $oldh);
return $temp;
}
if (move_uploaded_file($_FILES['file']['tmp_name'], $newname)) {
$uploadedImage = imagecreatefromjpeg($newname);
if (!$uploadedImage) {
throw new Exception('The uploaded file is corrupted (or wrong format)');
} else {
$resizedImage = PIPHP_ImageResize($uploadedImage,10,10);
// save your image on disk
if (!imagejpeg ($resizedImage, "new/filename/path")) {
throw new Exception('failed to save resized image');
}
}
} else {
throw new Exception('failed Upload');
}
我添加了最小的和错误处理,您应该检查上传文件的格式并使用相应的图片创建器功能,或检查上传的文件是一个图像。
<强>附录强>
您可以使用getimagesize功能确定推定上传图像的类型。
getimagesize返回一个数组。如果支持图像类型,则array [2]值将返回图像的类型。如果文件不是图像,或者不支持其格式,则array [0]值为零。一旦知道图像的文件格式,就可以使用imagecreatefromxxx函数之一来创建合适的图像。