note 97017 modified in function.imagick-setimagecompressionquality by danbrown

From: Date: Mon, 29 Mar 2010 00:40:32 +0000
Subject: note 97017 modified in function.imagick-setimagecompressionquality by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-167477@lists.php.net to get a copy of this message
This example shows how to set the compression type, set the compression quality, create a thumbnail and remove unnecessary data in order to reduce file size. This will use the following functions in reference: Imagick::setImageCompression Imagick::setImageCompressionQuality Imagick::stripImage Imagick::thumbnailImage Imagick::writeImage <?php $image = 'image.jpg'; $directory = '/path/to/image'; $image_location = $directory . "/" . $image; $thumb_destination = $directory . "/t" . $image; $compression_type = Imagick::COMPRESSION_JPEG; $im = new Imagick($image_location); $thumbnail = $im->clone; $thumbnail->setImageCompression($compression_type); $thumbnail->setImageCompressionQuality(40); $thumbnail->stripImage(); $thumbnail->thumbnailImage(100,null); $thumbnail->writeImage($thumb_destination); ?> Now, obviously you don't have to do so much with the variables and the file location. I only used so many to demonstrate where the images are coming from and where they are going. NOTE: The $thumbnail->thumbnailImage(100,null); keeps the aspect ration by setting the second parameter to null. Read about this at Imagick::thumbnailImage There is another way to create thumbnails that works quite well if you want to crop the image rather than using the entire image. Check out Imagick::cropThumbnailImage --was-- This is re-post of the previous post. I left out the part that removes the unnecessary data. Admins, if you could please delete the other comment I left. Thanks. This example shows how to set the compression type, set the compression quality, create a thumbnail and remove unnecessary data in order to reduce file size. This will use the following functions in reference: Imagick::setImageCompression Imagick::setImageCompressionQuality Imagick::stripImage Imagick::thumbnailImage Imagick::writeImage <?php $image = 'image.jpg'; $directory = '/path/to/image'; $image_location = $directory . "/" . $image; $thumb_destination = $directory . "/t" . $image; $compression_type = Imagick::COMPRESSION_JPEG; $im = new Imagick($image_location); $thumbnail = $im->clone; $thumbnail->setImageCompression($compression_type); $thumbnail->setImageCompressionQuality(40); $thumbnail->stripImage(); $thumbnail->thumbnailImage(100,null); $thumbnail->writeImage($thumb_destination); ?> Now, obviously you don't have to do so much with the variables and the file location. I only used so many to demonstrate where the images are coming from and where they are going. NOTE: The $thumbnail->thumbnailImage(100,null); keeps the aspect ration by setting the second parameter to null. Read about this at Imagick::thumbnailImage There is another way to create thumbnails that works quite well if you want to crop the image rather than using the entire image. Check out Imagick::cropThumbnailImage http://php.net/manual/en/function.imagick-setimagecompressionquality.php

« previous php.notes (#167477) next »