Как сжать изображение в php с помощью техники сжатия изображений с потерями? - PullRequest
0 голосов
/ 18 февраля 2020

Я использую этот сценарий PHP для сжатия изображений , но этот метод уменьшает размер изображения примерно на 40%, но я хочу уменьшить размер изображения как минимум на 70% без каких-либо изменений качества изображения.

Пожалуйста, помогите нам

Мой PHP скрипт ниже

 <?php
        $success = false;
        if(isset($_POST['submit']) && !empty($_POST['submit'])) {
          if(isset($_FILES['uploadImg']['name']) && @$_FILES['uploadImg']['name'] != "") {
            if($_FILES['uploadImg']['error'] > 0) {
              echo '<h4>Increase post_max_size and upload_max_filesize limit in php.ini file.</h4>';
            } else {
              if($_FILES['uploadImg']['size'] / 1024 <= 5120) { // 5MB
                if($_FILES['uploadImg']['type'] == 'image/jpeg' || 
                   $_FILES['uploadImg']['type'] == 'image/pjpeg' || 
                   $_FILES['uploadImg']['type'] == 'image/png' ||
                   $_FILES['uploadImg']['type'] == 'image/gif'){

                  $source_file = $_FILES['uploadImg']['tmp_name'];
                  $target_file = "uploads/compressed_" . $_FILES['uploadImg']['name']; 
                  $width      = $_POST['width'];
                  $height     = $_POST['height'];
                  $quality    = $_POST['quality'];
                  //$image_name = $_FILES['uploadImg']['name'];
                  $success = compress_image($source_file, $target_file, $width, $height, $quality);
                  if($success) {
                    // Optional. The original file is uploaded to the server only for the comparison purpose.
                    copy($source_file, "uploads/original_" . $_FILES['uploadImg']['name']);
                  }
                }
              } else {
                echo '<h4>Image should be maximun 5MB in size!</h4>';
              }
            }
          } else {
            echo "<h4>Please select an image first!</h4>";
          }
        }
        ?> ```
...