%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/devcapijob/public_html/liberary/
Upload File :
Create Path :
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;
}

?>

Zerion Mini Shell 1.0