Search code examples
phpimagegdlib

Resize image using PHP if it's too small


I'm allowing user uploads, and I want to scale their images up if they're too small (low quality is a non-issue). I need to make the smallest side become 150px and have the other dimension scale up to keep the aspect ratio. I need to make it work for .jpg, .gif and .png files.

Any pointers would be greatly appreciated, I'm struggling to find anything about making images larger like this.


Solution

  • Thanks to Alexander for the WideImage suggestion.

    I simply used this:

    require_once('WideImage/WideImage.php');
    $image = WideImage::load($_FILES['image']['tmp_name']);
    $resized = $image->resize(150,150,'outside','up');
    $resized->saveToFile($target_file);
    

    It worked perfectly, and by using the "up" option, it only scales images smaller than the dimensions set up, and leaves everything else.