Php 如何重新调整图像的大小以保持高宽比并将其上载
我有一个按钮,可以将背景图像上传到文件夹中,并将文件名保存到数据库中,但我不知道在上传之前如何重新调整图像的大小。实际上我面临两个问题。 1-如何调整图像大小并上载。 2-如何将图像显示为具有不同维度的div的背景图像 我到目前为止所做的: HtmlPhp 如何重新调整图像的大小以保持高宽比并将其上载,php,image,image-resizing,aspect-ratio,Php,Image,Image Resizing,Aspect Ratio,我有一个按钮,可以将背景图像上传到文件夹中,并将文件名保存到数据库中,但我不知道在上传之前如何重新调整图像的大小。实际上我面临两个问题。 1-如何调整图像大小并上载。 2-如何将图像显示为具有不同维度的div的背景图像 我到目前为止所做的: Html <div class="image_load_div"> <form id="imageform" enctype="multipart/form-data" method="post" action="upload.php"&
<div class="image_load_div">
<form id="imageform" enctype="multipart/form-data" method="post" action="upload.php">
<input name="photoimg" id="photoimg" type="file"/>
</form>
</div>
php-上传文件
$valid_formats = array("jpg", "png", "gif", "bmp");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") {
name = $_FILES['photoimg']['name'];
$size = $_FILES['photoimg']['size'];
if(strlen($name)) {
list($txt, $ext) = explode(".", $name);
if(in_array($ext,$valid_formats)) {
if($size<(1024*1024)) {
session_start();
$id = $_SESSION['QuestionId'];
$path = "/images/Img/".$id."_bg.".$ext;
if( move_uploaded_file($_FILES["photoimg"]["tmp_name"],$path) ) {
// Save the file name into database
}
else { echo "<script>alert('Upload failed');</script>"; }
else { echo "<script>alert('Image file size max 1 MB');</script>"; }
else { echo "<script>alert('Invalid file format..');</script>"; }
else { echo "<script>alert('Please select image..!');</script>"; exit; }
$valid_formats=数组(“jpg”、“png”、“gif”、“bmp”);
如果(isset($\u POST)和$\u服务器['REQUEST\u METHOD']=“POST”){
name=$\u文件['photoimg']['name'];
$size=$\u文件['photoimg']['size'];
if(strlen($name)){
列表($txt,$ext)=分解(“.”,$name);
if(在数组中($ext,$valid_格式)){
如果($size,您可以使用CSS进行此操作,并且仍然保持比例
<img src="image.png" style="max-width: 400px;">
然后,您可以使用php将图像的大小缩小为最大尺寸,然后使用CSS对其大小进行微调,这是一个有效且经过良好测试的代码。希望它能为您提供帮助
调用方法E:
$newname="xyz";
$filename=$_FILES['featured-img']['name'];
$extension=strtolower(substr(strrchr($filename, '.'), 1)); //Get extension
$extension=trim($extension);
$newfilename=$newname.$extension;
$newfilename=preg_replace('/\s+/', '_',$newfilename);
$target1 = "directory_path".$newfilename;
if(move_uploaded_file($_FILES['featured-img']['tmp_name'],$target1));
scaleImage($target1,500, 350, $target1);
方法定义:
function scaleImage($source_image_path, $maxWidth, $maxHeight, $thumbnail_image_path){
list($source_image_width, $source_image_height, $source_image_type) = getimagesize($source_image_path);
switch ($source_image_type) {
case IMAGETYPE_GIF:
$source_gd_image = imagecreatefromgif($source_image_path);
break;
case IMAGETYPE_JPEG:
$source_gd_image = imagecreatefromjpeg($source_image_path);
break;
case IMAGETYPE_PNG:
$source_gd_image = imagecreatefrompng($source_image_path);
break;
}
if ($source_gd_image === false) {
return false;
}
$thumbnail_image_width=$maxWidth;
$thumbnail_image_height=$maxHeight;
$thumbnail_gd_image = imagecreatetruecolor($thumbnail_image_width, $thumbnail_image_height);
imagecopyresampled($thumbnail_gd_image, $source_gd_image, 0, 0, 0, 0, $thumbnail_image_width, $thumbnail_image_height, $source_image_width, $source_image_height);
imagejpeg($thumbnail_gd_image, $thumbnail_image_path, 90);
imagedestroy($source_gd_image);
imagedestroy($thumbnail_gd_image);
return true;
}
function scaleImage($source_image_path, $maxWidth, $maxHeight, $thumbnail_image_path){
list($source_image_width, $source_image_height, $source_image_type) = getimagesize($source_image_path);
switch ($source_image_type) {
case IMAGETYPE_GIF:
$source_gd_image = imagecreatefromgif($source_image_path);
break;
case IMAGETYPE_JPEG:
$source_gd_image = imagecreatefromjpeg($source_image_path);
break;
case IMAGETYPE_PNG:
$source_gd_image = imagecreatefrompng($source_image_path);
break;
}
if ($source_gd_image === false) {
return false;
}
$thumbnail_image_width=$maxWidth;
$thumbnail_image_height=$maxHeight;
$thumbnail_gd_image = imagecreatetruecolor($thumbnail_image_width, $thumbnail_image_height);
imagecopyresampled($thumbnail_gd_image, $source_gd_image, 0, 0, 0, 0, $thumbnail_image_width, $thumbnail_image_height, $source_image_width, $source_image_height);
imagejpeg($thumbnail_gd_image, $thumbnail_image_path, 90);
imagedestroy($source_gd_image);
imagedestroy($thumbnail_gd_image);
return true;
}