www.webdeveloper.com
+ Reply to Thread
Results 1 to 3 of 3
  1. #1
    Join Date
    Mar 2006
    Location
    Canada
    Posts
    1,197

    Reduce File size

    Hi the below code reduces the image at the same time it reduces the disk space the image uses. It works excellent but I want to reduce the diskspace each file uses even more, but keep the image width and height the same

    any ideas how to do this

    thank you
    PHP Code:
    // upload Images
    if(isset($_POST['upLoadImages'])){
    foreach (
    $_FILES['file']['tmp_name'] as $i => $val) :
    if (
    is_uploaded_file($_FILES['file']['tmp_name'][$i])) {
     
    // This is the temporary file created by PHP
    $uploadedfile $HTTP_POST_FILES['file']['tmp_name'][$i];

    // Create an Image from it so we can do the resize
    $src imagecreatefromjpeg($uploadedfile);

    // Capture the original size of the uploaded image
    list($width,$height)=getimagesize($uploadedfile);

    // For our purposes, I have resized the image to be
    // 600 pixels wide, and maintain the original aspect
    // ratio. This prevents the image from being "stretched"
    // or "squashed". If you prefer some max width other than
    // 600, simply change the $newwidth variable
    $newwidth=450;
    $newheight=($height/$width)*450;
    $tmp=imagecreatetruecolor($newwidth,$newheight);


    // this line actually does the image resizing, copying from the original
    // image into the $tmp image
    imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);

    // now write the resized image to disk. I have assumed that you want the
    // resized, uploaded image file to reside in the ./images subdirectory.
    $filename "../user_images/"$user_name."-".$HTTP_POST_FILES['file']['name'][$i];
     
    imagejpeg($tmp,$filename,100);

    imagedestroy($src);
    imagedestroy($tmp); // NOTE: PHP will clean up the temp file it created when the request
    // has completed.

    $image_size filesize($filename);
    $image_name $user_name."-".$HTTP_POST_FILES['file']['name'][$i];
    $add_image = ("INSERT INTO image_files (image_name, image_size, user_id, create_date, album)
    VALUES('
    $image_name', '$image_size', '$user_id', now(), '$album')");


    $sql mysql_query($add_image)or die("SQL Error: $add_image<br>" mysql_error());

    $otheralbum_cover $user_name."-".$HTTP_POST_FILES['file']['name'][0];

    mysql_query("UPDATE albumNames SET album_cover = '$otheralbum_cover' WHERE album= '$album' AND user_id = '$user_id'")or die ("Link Create Error:" .mysql_error());
    }
    endforeach;
    //


    Kevin

  2. #2
    Join Date
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    18,049
    Use a number less than 100 in the last parameter for higher compression (and correspondingly lower picture quality):
    PHP Code:
    imagejpeg($tmp,$filename,100);
    //                       ^^^ 
    "Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
    ~ Terry Pratchett in Nation

    eBookworm.us

  3. #3
    Join Date
    Mar 2006
    Location
    Canada
    Posts
    1,197
    thank you that worked
    Kevin

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center



Recent Articles