Category

Php

Category

How To Compress Image File Size Using Php

We are Commonly download the image from google and Upload it without compressed, Its made a problem while loading the website, Its reduce the page speed, So we need to compress the Image size before upload into your site, So here we go to learn How To Compress Image File Size Using Php,

Step 1 : Create file for Compress Image file size 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); 
imagejpeg($image, $destination_url, $quality); 
return $destination_url; 
} 
if ($_POST) 
{ 
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")) 
 { 
$url = 'destination1.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"; } 
} 
?>

This is just a php function that passes the source image ( i.e., $source_img ), destination image ( $destination_img ) and quality for the image that will take to compress ( i.e., 90 ).
The getimagesize() function is used to find the size of any given image file and return the dimensions along with the file type.

$image = imagecreatefromjpeg($source); $image = imagecreatefromgif($source); $image = imagecreatefrompng($source);

Quality ($quality): quality is optional, and ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file). The default range is 75.

Step 2 : Create Form For image upolad

<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>

This is simple Form code for upload image.

Here you can get Full 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); 
imagejpeg($image, $destination_url, $quality); 
return $destination_url; 
} 
if ($_POST) 
{ 
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")) 
 { 
$url = 'destination1.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"; } 
} 
?> 
<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>