-
Вебмастеру
(
http://forum.oszone.net/forumdisplay.php?f=22)
Использование 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 кб, так и остаётся.
|
Как сказал 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.
|
До меня дошло почему так :)
ImageMagick - стороняя программа, К памяти в PHP она не имеет никакого отношения. Вот поэтому и надо записать на диск.
|
Время: 03:11.
© OSzone.net 2001-