%PDF- %PDF-
Direktori : /home/devcapijob/public_html/liberary/ |
Current File : /home/devcapijob/public_html/liberary/optimize.php |
<?php /** * Optimize image image * * https://developers.google.com/speed/docs/insights/OptimizeImages * -sampling-factor 4:2:0 -strip -quality 85 -interlace JPEG -colorspace sRGB * * @access public * @param string $filePath Path of the file * @return string Raw image result from the process */ public static function optimize($filePath) { /** * Compress image */ $imagick = new Imagick(); $rawImage = file_get_contents($filePath); $imagick->readImageBlob($rawImage); $imagick->stripImage(); // Define image $width = $imagick->getImageWidth(); $height = $imagick->getImageHeight(); // Compress image $imagick->setImageCompressionQuality(85); $image_types = getimagesize($filePath); // Get thumbnail image $imagick->thumbnailImage($width, $height); // Set image as based its own type if ($image_types[2] === IMAGETYPE_JPEG) { $imagick->setImageFormat('jpeg'); $imagick->setSamplingFactors(array('2x2', '1x1', '1x1')); $profiles = $imagick->getImageProfiles("icc", true); $imagick->stripImage(); if(!empty($profiles)) { $imagick->profileImage('icc', $profiles['icc']); } $imagick->setInterlaceScheme(Imagick::INTERLACE_JPEG); $imagick->setColorspace(Imagick::COLORSPACE_SRGB); } else if ($image_types[2] === IMAGETYPE_PNG) { $imagick->setImageFormat('png'); } else if ($image_types[2] === IMAGETYPE_GIF) { $imagick->setImageFormat('gif'); } // Get image raw data $rawData = $imagick->getImageBlob(); // Destroy image from memory $imagick->destroy(); return $rawData; } ?>