Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Использование ImageMagick (http://forum.oszone.net/showthread.php?t=134716)

Igor_I 14-03-2009 14:14 1063541

Использование ImageMagick
 
Может кто использует ImageMagick.
Не получается выставить компрессию.
PHP код:

// load an image
$img = new Imagick('upload/313/pNeDUU8F.jpg');

// compression methods, see "Contants"-page for Imagick
$img->setCompression(Imagick::COMPRESSION_JPEG);

// a value between 1 and 100, 1 = high compression, 100 low compression
$img->setCompressionQuality(100);

// set content type
header("Content-type: image/jpeg");

// write image
echo $img->getImageBlob(); 

Качество меняю от 40 до 100, размер файла как был 307 кб, так и остаётся.

Igor_I 14-03-2009 17:43 1063726

Как сказал Mikko надо писать writeimage
PHP код:

$img1 = new Imagick('upload/FJQKMwJe.png');
$img1->setImageFormat('jpg');  
$img1->setImageCompression(Imagick::COMPRESSION_JPEG);
$img1->setImageCompressionQuality(50);
$img1->writeImage('tmp/1.jpg');
$s1=$img1->getImageSize(); 
$img1->clear();
$img1->destroy();  
 
$img2 = new Imagick('upload/FJQKMwJe.png');
$img2->setImageCompression(Imagick::COMPRESSION_JPEG);
$img2->setImageCompressionQuality(75);
$img2->writeImage('tmp/2.jpg');
$s2$img2->getImageSize(); 
$img2->clear();
$img2->destroy();

$img3 = new Imagick('upload/FJQKMwJe.png');
$img3->setImageCompression(Imagick::COMPRESSION_JPEG);
$img3->setImageCompressionQuality(90);
$img3->writeImage('tmp/3.jpg');
$s3$img3->getImageSize(); 

echo 
$s1." = ".$s2." = ".$s3

159887 = 218540 = 369199
PHP код:

$img1 = new Imagick('upload/FJQKMwJe.png');
$img1->setImageFormat('jpg');  
$img1->setImageCompression(Imagick::COMPRESSION_JPEG);
$img1->setImageCompressionQuality(50);
#$img1->writeImage('tmp/1.jpg');
$s1=$img1->getImageSize(); 
$img1->clear();
$img1->destroy();  
 
$img2 = new Imagick('upload/FJQKMwJe.png');
$img2->setImageCompression(Imagick::COMPRESSION_JPEG);
$img2->setImageCompressionQuality(75);
#$img2->writeImage('tmp/2.jpg');
$s2$img2->getImageSize(); 
$img2->clear();
$img2->destroy();

$img3 = new Imagick('upload/FJQKMwJe.png');
$img3->setImageCompression(Imagick::COMPRESSION_JPEG);
$img3->setImageCompressionQuality(90);
#$img3->writeImage('tmp/3.jpg');
$s3$img3->getImageSize(); 

echo 
$s1." = ".$s2." = ".$s3

347346 = 347346 = 347346

Но я правда не согласен с таким вариантом.

Возник другой вопрос, как добиться маленького размера в PNG.

Igor_I 18-03-2009 00:43 1066797

До меня дошло почему так :)
ImageMagick - стороняя программа, К памяти в PHP она не имеет никакого отношения. Вот поэтому и надо записать на диск.


Время: 03:11.

Время: 03:11.
© OSzone.net 2001-