Imagick::setCompressionQuality

(PECL imagick 0.9.10-0.9.9)

Imagick::setCompressionQualitySets the object's default compression quality

Описание

bool Imagick::setCompressionQuality ( int $quality )

Sets the object's default compression quality.

Список параметров

quality

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Коментарии

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();
?>
2007-11-17 04:46:52
http://php5.kiev.ua/manual/ru/imagick.setcompressionquality.html
Автор:
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();
}

?>
2008-03-26 22:24:04
http://php5.kiev.ua/manual/ru/imagick.setcompressionquality.html
Автор:
A note for people who just couldn't get this working..

With PHP 5.1.6, the below works:

<?php
$img
->setCompression(Imagick::COMPRESSION_JPEG);
$img->setCompressionQuality(80);
?>

However, with higher versions of PHP (I tried on PHP 5.2.10), the code has no effect (and there are no exceptions or warnings thrown by Imagick as well).

The code that works instead is:

<?php
$img
->setImageCompression(Imagick::COMPRESSION_JPEG);
$img->setImageCompressionQuality(80);
?>

and this is backwards compatible (Works on PHP 5.1.6 as well as 5.2.10)
2010-03-18 04:59:33
http://php5.kiev.ua/manual/ru/imagick.setcompressionquality.html
I had to insert a call to "stripImage()" in order to actually see the filesize shrink.

<?php
   $img 
= new Imagick();
   
$img->readImage($src);
   
$img->setImageCompression(imagick::COMPRESSION_JPEG);
   
$img->setImageCompressionQuality(90);
   
$img->stripImage();
   
$img->writeImage($dest);
?>
2010-08-03 14:31:08
http://php5.kiev.ua/manual/ru/imagick.setcompressionquality.html

    Поддержать сайт на родительском проекте КГБ