0

Hello Guys I need help.

<form action="sample.php" method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" name="submit">
</form>

Then when I click Submit the file size of the image will minimize.

For example.

Gaara.JPG = file size:1.50mb;

But when I upload The file size it will decrease.

Like = file size:600kb; or less than.

Thanks

3 Answers3

0

Compress images on client side before uploading or Client side file compression

Community
  • 1
  • 1
0
<?php
############ Configuration ##############
$thumb_square_size      = 200; //Thumbnails will be cropped to 200x200 pixels
$max_image_size         = 5000; //Maximum image size (height and width)
$thumb_prefix           = "thumb_"; //Normal thumb Prefix
$destination_folder     = 'uploads/'; //upload directory ends with / (slash)
$jpeg_quality           = 90; //jpeg quality
##########################################

//continue only if $_POST is set and it is a Ajax request
if(isset($_POST['image_file']) && isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&     strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){

// check $_FILES['ImageFile'] not empty
if(!isset($_FILES['image_file']) || !is_uploaded_file($_FILES['image_file']    ['tmp_name'])){
        die('Image file is Missing!'); // output error when above checks     fail.
}

//uploaded file info we need to proceed
$image_name = $_FILES['image_file']['name']; //file name
$image_size = $_FILES['image_file']['size']; //file size
$image_temp = $_FILES['image_file']['tmp_name']; //file temp

$image_size_info    = getimagesize($image_temp); //get image size

if($image_size_info){
    $image_width        = $image_size_info[0]; //image width
    $image_height       = $image_size_info[1]; //image height
    $image_type         = $image_size_info['mime']; //image type
}else{
    die("Make sure image file is valid!");
}

//switch statement below checks allowed image type 
//as well as creates new image from given file 
switch($image_type){
    case 'image/png':
        $image_res =  imagecreatefrompng($image_temp); break;
    case 'image/gif':
        $image_res =  imagecreatefromgif($image_temp); break;           
    case 'image/jpeg': case 'image/pjpeg':
        $image_res = imagecreatefromjpeg($image_temp); break;
    default:
        $image_res = false;
}

if($image_res){
    //Get file extension and name to construct new file name 
    $image_info = pathinfo($image_name);
    $image_extension = strtolower($image_info["extension"]); //image extension
    $image_name_only = strtolower($image_info["filename"]);//file name only, no     extension

    //create a random name for new image (Eg: fileName_293749.jpg) ;
    $new_file_name = $image_name_only. '_' .  rand(0, 9999999999) . '.' .     $image_extension;

    //folder path to save resized images and thumbnails
    $thumb_save_folder  = $destination_folder . $thumb_prefix .     $new_file_name; 
    $image_save_folder  = $destination_folder . $new_file_name;

    //call normal_resize_image() function to proportionally resize image
    if(normal_resize_image($image_res, $image_save_folder, $image_type,     $max_image_size, $image_width, $image_height, $jpeg_quality))
    {
        //call crop_image_square() function to create square thumbnails
        if(!crop_image_square($image_res, $thumb_save_folder, $image_type,     $thumb_square_size, $image_width, $image_height, $jpeg_quality))
        {
            die('Error Creating thumbnail');
        }

        /* We have succesfully resized and created thumbnail image
        We can now output image to user's browser or store information in     the database*/
        echo '<div align="center">';
        echo '<img src="uploads/'.$thumb_prefix . $new_file_name.'"     alt="Thumbnail">';
        echo '<br />';
        echo '<img src="uploads/'. $new_file_name.'" alt="Resized Image">';
        echo '</div>';
    }

    imagedestroy($image_res); //freeup memory
}
}

?>

0

U can try using Image Magician script with it u can crop, resize, add watermark, border and do other stuffs as well. Here is the link http://phpimagemagician.jarrodoberto.com/

Sample usage:

include_once ('.../php_image_magician.php');
$path = "your/media_media_upload_directory/";
$destination = "your_thumbnails/media_upload/directory/";
 if(move_uploaded_file($tmp, $path.$actual_image_name)) {
  $magicianObj = new imageLib($path.$actual_image_name);
   $magicianObj -> resizeImage(630, 600, 'landscape');
   $magicianObj -> addWatermark('your/watermark/folder/watermark.png', 'l', 5);
   $magicianObj -> saveImage($path.$actual_image_name, 70);
    $magicianObj -> reset();
   $magicianObj -> resizeImage(300, 300, 'crop-tl', true);
   $magicianObj -> saveImage($destination.$actual_image_name);
 }

With this example after the file has been moved from tmp folder to media folder I'm resizing it, adding the watermark and then croping for thumbnail, at the saveImage action you have the option to reduce the quality from 100 to whatever you want, at the example the quality is 70.

emilushi
  • 280
  • 7
  • 16