Home » Php » Which is the best PHP method to reduce the image size without losing quality

Which is the best PHP method to reduce the image size without losing quality

Posted by: admin April 23, 2020 Leave a comment


I am trying to develop an image based web site. I am really confused about the image type and compression techniques. Please advice me the best way to compress image sizes.

How to&Answers:

I’d go for jpeg. Read this post regarding image size reduction and after deciding on the technique, use ImageMagick

Hope this helps


If you are looking to reduce the size using coding itself, you can follow this code in php.

function compress($source, $destination, $quality) {

    $info = getimagesize($source);

    if ($info['mime'] == 'image/jpeg') 
        $image = imagecreatefromjpeg($source);

    elseif ($info['mime'] == 'image/gif') 
        $image = imagecreatefromgif($source);

    elseif ($info['mime'] == 'image/png') 
        $image = imagecreatefrompng($source);

    imagejpeg($image, $destination, $quality);

    return $destination;

$source_img = 'source.jpg';
$destination_img = 'destination .jpg';

$d = compress($source_img, $destination_img, 90);

$d = compress($source_img, $destination_img, 90);

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

$info = getimagesize($source);

The getimagesize() function is used to find the size of any given image file and return the dimensions along with the file type.


You can resize and then use imagejpeg()

Don’t pass 100 as the quality for imagejpeg() – anything over 90 is generally overkill and just gets you a bigger JPEG. For a thumbnail, try 75 and work downwards until the quality/size tradeoff is acceptable.

imagejpeg($tn, $save, 75);


well I think I have something interesting for you… https://github.com/whizzzkid/phpimageresize. I wrote it for the exact same purpose. Highly customizable, and does it in a great way.