Wednesday, 24 June 2015

PHP: How to Reduce Image File Size while Uploading Using PHP code?

<?php
    $name = '';
    $type = '';
    $size = '';
    $error = '';
    function compress_image($source_url, $destination_url, $quality) {
    $info = getimagesize($source_url);
    if ($info['mime'] == 'image/jpeg')
        $image = imagecreatefromjpeg($source_url);
    elseif ($info['mime'] == 'image/gif')
        $image = imagecreatefromgif($source_url);
    elseif ($info['mime'] == 'image/png')
        $image = imagecreatefrompng($source_url);
    elseif ($info['mime'] == 'application/pdf')
        $image = imagecreatefrompdf($source_url);
       
    imagejpeg($image, $destination_url, $quality);
        return $destination_url;
    }
    if ($_POST) {
        //print_r($_FILES["file"]["type"]);exit();
        if ($_FILES["file"]["error"] > 0) {
            $error = $_FILES["file"]["error"];
        } else if (($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "application/pdf")) {
        $url = 'destination .jpg';
        $filename = compress_image($_FILES["file"]["tmp_name"], $url, 80);
        $buffer = file_get_contents($url);
        /* Force download dialog... */
        header("Content-Type: application/force-download");
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");
         /* Don't allow caching... */
         header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
         /* Set data type, size and filename */
         header("Content-Type: application/octet-stream");
         header("Content-Transfer-Encoding: binary");
         header("Content-Length: " . strlen($buffer));
         header("Content-Disposition: attachment; filename=$url");
         /* Send our file... */
         echo $buffer;
        }else {
            $error = "Uploaded image should be jpg or gif or png";
        }
    }
   
   
/*function imagecreatefrompdf($pdf) {
    //ImageMagick convert command
  $exec = '/usr/bin/convert -append -fuzz 1% -trim -colorspace rgb -density 300 -quality 100 -resize 50%';
 
  //temp file
  $tmp = tempnam('','php');
  rename($tmp,"$tmp.pdf");
  $tmp = "$tmp.pdf";
  $out = tempnam('','php');
  unlink($out);
  $out = "$out.png";
 
  //copy
  copy($pdf,$tmp);
 
  //execute the command
    exec(sprintf('%s %s %s',$exec,$tmp,$out),$result);
    unlink($tmp);

    $img=imagecreatefrompng($out);
    unlink($out);
    return $img;
}*/

    ?>
<html>
<head>
<title>Php code compress the image</title>
</head>
<body>
<div class="message">
  <?php if($_POST){ if ($error) { ?>
  <label class="error"><?php echo $error; ?></label>
  <?php } } ?>
</div>
<fieldset class="well">
  <legend>Upload Image:</legend>
  <form action="" name="myform" id="myform" method="post" enctype="multipart/form-data">
    <ul>
      <li>
        <label>Upload:</label>
        <input type="file" name="file" id="file"/>
      </li>
      <li>
        <input type="submit" name="submit" id="submit" class="submit btn-success"/>
      </li>
    </ul>
  </form>
</fieldset>
</body>
</html>

1 comment: