Sebastian's example works excellent, just one minor spelling mistake, it will give you an error otherwise.
<?php
$img->setCompression(Imagick::COMPRESSION_JPEG);
$img->setCompressionQuality(80);
?>
I used Sebastians example, and made one that compresses all the images within a directory:
<?php
$images = new Imagick(glob('images/*.jpg'));
foreach($images as $image)
{
// compression methods, see "Contants"-page for Imagick
$image->setCompression(imagick::COMPRESSION_JPEG);
// a value between 1 and 100, 1 = high compression, 100 low compression
$image->setCompressionQuality(80);
$image->writeImage();
}
?>
Imagick::setCompressionQuality
(PECL imagick 0.9.10-0.9.9)
Imagick::setCompressionQuality — Sets the object's default compression quality
Description
bool Imagick::setCompressionQuality
( int $quality
)
Warning
This function is currently not documented; only its argument list is available.
Sets the object's default compression quality.
Parameters
- quality
-
Return Values
Returns TRUE on success.
Imagick::setCompressionQuality
nVaux.com
27-Mar-2008 04:24
27-Mar-2008 04:24
sebastian dot moser at gmail dot com
17-Nov-2007 10:46
17-Nov-2007 10:46
Use this example to see how image compression works:
<?php
// load an image
$img = new Imagick("test.jpg");
// compression methods, see "Contants"-page for Imagick
$img->setComression(Imagick::COMPRESSION_JPEG);
// a value between 1 and 100, 1 = high compression, 100 low compression
$img->setComressionQuality(80);
// set content type
header("Content-type: image/jpeg");
// write image
echo $img->getImageBlob();
?>
