Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP upload and resize image

I am working on a script that uploads a picture using PHP and I wanna make it resize the image to width 180 before saving it.
I tried using the WideImage library and ->saveFileTO(...) but when I include the WideImage.php in the page, the page goes blank !!
So here is my script if you can help me and tell me how to make it save the resized version

like image 983
taabouzeid Avatar asked Jan 29 '10 04:01

taabouzeid


People also ask

How to resize image while uploading in PHP?

Step 2: Resize image PHP code. Here we are going to define an image upload handling process scripts with thumbnail image creation form an original file. <img class="img-rounded img-responsive" src="<? php echo $uploadPath."thump_".

How to resize images in PHP?

To achieve this we will be using the imagecopyresampled() function in PHP. The imagecopyresampled() function is used to copy and resize an image or part of the image with resampling.


2 Answers

You can use the PHP GD library to resize an image on upload.

The following code should give you an idea of how to implement the resize:

// Get the image info from the photo
$image_info = getimagesize($photo);
$width = $new_width = $image_info[0];
$height = $new_height = $image_info[1];
$type = $image_info[2];

// Load the image
switch ($type)
{
    case IMAGETYPE_JPEG:
        $image = imagecreatefromjpeg($photo);
        break;
    case IMAGETYPE_GIF:
        $image = imagecreatefromgif($photo);
        break;
    case IMAGETYPE_PNG:
        $image = imagecreatefrompng($photo);
        break;
    default:
        die('Error loading '.$photo.' - File type '.$type.' not supported');
}

// Create a new, resized image
$new_width = 180;
$new_height = $height / ($width / $new_width);
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Save the new image over the top of the original photo
switch ($type)
{
    case IMAGETYPE_JPEG:
        imagejpeg($new_image, $photo, 100);
        break;
    case IMAGETYPE_GIF:
        imagegif($new_image, $photo);         
        break;
    case IMAGETYPE_PNG:
        imagepng($new_image, $photo);
        break;
    default:
        die('Error saving image: '.$photo);
}
like image 150
jschmier Avatar answered Sep 17 '22 20:09

jschmier


You can use a class I've written for just such a task:

http://code.google.com/p/image2/source/browse/#svn/trunk/includes/classes

<?php

    try
    {
        $image = new Image2($path_to_image);
    }
    catch (NotAnImageException $e)
    {
        printf("FILE PROVIDED IS NOT AN IMAGE, FILE PATH: %s", $path_to_image);
    }

    $image -> resize(array("width" => 180)) -> saveToFile($new_path); // be sure to exclude the extension
    $new_file_location = $image -> getFileLocation(); // this will include the extension for future use
like image 35
Adrian Avatar answered Sep 17 '22 20:09

Adrian