PHP

COMPRESS IMAGES IN PHP

quick guide & example

CREATE IMAGE OBJECT

01

OPEN ORIGINAL IMAGE - USE THE RESPECTIVE “IMAGE CREATE” FUNCTION $img = imagecreatefrombmp("O.BMP"); $img = imagecreatefrompng("O.PNG"); $img = imagecreatefromgif("O.GIF"); $img = imagecreatefromwebp("O.WEBP"); $img = imagecreatefromjpeg("O.JPG");

SOURCE IMAGE DIMENSIONS $sw = imagesx($img); $sh = imagesy($img);

OPTIONAL RESIZE IMAGE

02

CALCULATE RESIZE RATIO if ($mw != null && $sw>$mw) { $rw = $mw / $sw; } else { $rw = 1; } if ($mh != null && $sh>$mh) { $rh = $mh / $sh; } else { $rh = 1; }

MAX DIMENSIONS $mw = 1920; $mh = 1080; 

RESIZE IMAGE IF REQUIRED if ($rw!=1 || $rh!=1) {   $rr = $rw<$rh ? $rw : $rh ;   $img = imagescale($img, floor($rr *$sw),                 floor($rr * $sh)); }

RECOMMENDED - SAVE AS JPG OR WEBP imagejpeg($img, "IMG.JPG", 50); imagewebp($img, "IMG.WEBP", 50); imagepng($img, "IMG.PNG"); imagegif($img, "IMG.GIF");

NOTES * JPG does not support transparent background. * Only WEBP PNG GIF do. * Use WEBP JPEG for best results.

COMPRESS & SAVE IMAGE

03