我为完成的另一个项目编写了这样的代码。我已在下面复制了它,可能需要修补一下!(它确实需要GD库)
这些是它需要的参数:
$image_name - Name of the image which is uploaded$new_width - Width of the resized photo (maximum)$new_height - Height of the resized photo (maximum)$uploadDir - Directory of the original image$moveToDir - Directory to save the resized image
它将按比例缩小或放大图像到最大宽度或高度
function createThumbnail($image_name,$new_width,$new_height,$uploadDir,$moveToDir){ $path = $uploadDir . '/' . $image_name; $mime = getimagesize($path); if($mime['mime']=='image/png') { $src_img = imagecreatefrompng($path); } if($mime['mime']=='image/jpg' || $mime['mime']=='image/jpeg' || $mime['mime']=='image/pjpeg') { $src_img = imagecreatefromjpeg($path); } $old_x = imageSX($src_img); $old_y = imageSY($src_img); if($old_x > $old_y) { $thumb_w = $new_width; $thumb_h = $old_y*($new_height/$old_x); } if($old_x < $old_y) { $thumb_w = $old_x*($new_width/$old_y); $thumb_h = $new_height; } if($old_x == $old_y) { $thumb_w = $new_width; $thumb_h = $new_height; } $dst_img = ImageCreateTrueColor($thumb_w,$thumb_h); imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y); // New save location $new_thumb_loc = $moveToDir . $image_name; if($mime['mime']=='image/png') { $result = imagepng($dst_img,$new_thumb_loc,8); } if($mime['mime']=='image/jpg' || $mime['mime']=='image/jpeg' || $mime['mime']=='image/pjpeg') { $result = imagejpeg($dst_img,$new_thumb_loc,80); } imagedestroy($dst_img); imagedestroy($src_img); return $result;}


