PHP Imagick görüntü sıkıştırma

2 Cevap php

Ben Imagick'teki için oldukça yeni ve sadece PHP kütüphanesinde çok sınırlı belgeleri bulduk. Ben mutlu görüntüleri yeniden boyutlandırma ve sabit sürücü, bunları geri yazma, ama örneğin JPG kullanarak görüntüleri sıkıştırmak için tamamen başarısız oluyorum ediyorum.

Bu şimdiye kadar istimal kodudur

function scale_image($size = 200,$extension)
{
	if(!file_exists(ALBUM_PATH . $this->path . $this->filename . $extension))
	{
		$im = new imagick(ALBUM_PATH . $this->path . $this->filename);

		$width = $im->getImageWidth();
		$height = $im->getImageHeight();
		if($width > $height)
			$im->resizeImage($size, 0, imagick::FILTER_LANCZOS, 1); 
		else 
			$im->resizeImage(0 , $size, imagick::FILTER_LANCZOS, 1); 

		$im->setImageCompression(true);
		$im->setCompression(Imagick::COMPRESSION_JPEG);
		$im->setCompressionQuality(20); 

		$im->writeImage(ALBUM_PATH . $this->path . $this->filename . $extension); 
		$im->clear(); 
		$im->destroy();	
	}
}

Herhangi bir yardım büyük mutluluk duyacağız.

Çok teşekkürler

Soymak

2 Cevap

Bu deneyin:

$im->setImageCompression(Imagick::COMPRESSION_JPEG);
$im->setImageCompressionQuality(20);

setImageCompression (: http://www.php.net/manual/en/function.imagick-setimagecompression.php bakınız) parametresi ziyade mantıksal olarak bir tamsayı beklemek gibi görünüyor.

Ben bu satırı devre dışı bile görüntü sıkıştırma çalışabilir düşünüyorum:

$im->setImageCompression(true);