Incarca imaginile comprimate

Compresia imaginilor este foarte utilă pentru a reduce dimensiunea imaginii. În general, utilizatorul nu optimizează imaginea atunci când o încarcă prin intermediul site-ului web. În acest caz, comprimați imaginile înainte de a le încărca pentru a optimiza imaginea.

Așadar, acum vă voi arăta cum să comprimați imaginea înainte de încărcare folosind PHP.

Creați un formular PHP cu un câmp de intrare și un buton de trimitere. Acest

conține următorul conținut:

method=”post”
enctype=”multipart/form-data

Notă: enctype=”multipart/form-data” este obligatoriu pentru precesul de încărcare a imaginilor prin metoda post în formular.

Conținutul fișierului index.php

<?php include ‘upload.php’; ?>
<!DOCTYPE html>
<html>
   <head>
      <title>Compress Image</title>
      <link rel=”stylesheet” href=”https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css”>
      <script src=”https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js”></script>
      <script src=”https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js”></script>
   </head>
   <body>
      <div class=”container” style=”margin-top:20px;”>
         <div class=”panel panel-primary”>
            <div class=”panel-heading text-center”><strong>Image Upload and Compress using PHP</strong></div>
            <div class=”panel-body”>
               <div class=”row”>
                  <div class=”col-sm-8″>
                     <form action=”” method=”post” enctype=”multipart/form-data”>
                        <div class=”form-group”>
                           <label><b>Select Image File:</b></label>
                           <input type=”file” class=”form-control-file border” name=”image”>
                        </div>
                  </div>
                  <input type=”submit” class=”btn btn-primary” name=”submit” value=”Compress Image”>
                  </form>
               </div>
               <div class=”result”>
                  <?php if(!empty($compressedImage)){ ?>
                  <p><b>Original Image Size:</b><?php echo $imageSize; ?> </p>
                  <p><b>Compressed Image Size:</b><?php echo $compressedImageSize; ?></p>
                  <img src=”<?php echo $compressedImage; ?>”>
                  <?php } ?>
               </div>
            </div>
         </div>
      </div>
   </body>
</html>

După trimiterea formularului, datele fișierului sunt trimise în fișierul upload.php pentru procesare ulterioară. Apoi, se comprimă și se încarcă imaginile în PHP.

Fișierul upload.php se ocupă de operațiunile de încărcare prin compresie a imaginilor. Am folosit câteva funcții de imagine PHP, cum ar fi compressImage(), care ajută la comprimarea și salvarea imaginii pe server folosind PHP.

În cazul în care fișierul este trimis, apoi se recuperează informațiile despre fișier folosind metoda PHP $_FILES, dimensiunea comprimată și se încarcă imaginea folosind funcția compressImage(). Apoi, vedeți starea de încărcare a imaginii.

Conținutul fișierului upload.php

<?php
 
/*
 * Custom function to compress image size and
 * upload to the server using PHP
 */
function compressImage($source, $destination, $quality) {
    // Get image info
    $imgInfo = getimagesize($source);
    $mime = $imgInfo[‘mime’];
     
    // Create a new image from file
    switch($mime){
        case ‘image/jpeg’:
            $image = imagecreatefromjpeg($source);
            break;
        case ‘image/png’:
            $image = imagecreatefrompng($source);
            break;
        case ‘image/gif’:
            $image = imagecreatefromgif($source);
            break;
        default:
            $image = imagecreatefromjpeg($source);
    }
     
    // Save image
    imagejpeg($image, $destination, $quality);
     
    // Return compressed image
    return $destination;
}
 
 
// File upload path
$uploadPath = „uploads/”;
 
// If file upload form is submitted
$status = $statusMsg = ”;
if(isset($_POST[„submit”])){
    $status = ‘error’;
    if(!empty($_FILES[„image”][„name”])) {
        // File info
        $fileName = basename($_FILES[„image”][„name”]);
        $imageUploadPath = $uploadPath . $fileName;
        $fileType = pathinfo($imageUploadPath, PATHINFO_EXTENSION);
         
        // Allow certain file formats
        $allowTypes = array(‘jpg’,’png’,’jpeg’,’gif’);
        if(in_array($fileType, $allowTypes)){
            // Image temp source
            $imageTemp = $_FILES[„image”][„tmp_name”];
            $imageSize = $_FILES[„image”][„size”];
             
            // Compress size and upload image
            $compressedImage = compressImage($imageTemp, $imageUploadPath, 75);
             
            if($compressedImage){
                $compressedImageSize = filesize($compressedImage);

                $status = ‘success’;
                // $statusMsg = „Image compressed successfully.”;
            }else{
                $statusMsg = „Image compress failed!”;
            }
        }else{
            $statusMsg = ‘Sorry, only JPG, JPEG, PNG, & GIF files are allowed to upload.’;
        }
    }else{
        $statusMsg = ‘Please select an image file to upload.’;
    }
}
 
// Display status message
echo $statusMsg;
 
?>