1
我試圖計算圖像的最佳壓縮質量小於150kB。但Imagick讓我感到噁心......imagick - 逐漸降低的壓縮質量
這裏是我的代碼:
<?php
// {...}
// $white is my image
// self::THUMBNAIL_SIZE_KO is 150
$quality = 100;
$white->setImageFormat('jpg');
$white->setImageCompression(Imagick::COMPRESSION_JPEG);
$white->setCompressionQuality($quality);
$data = $white->getImageBlob();
var_dump(strlen($data));
while(strlen($data) > self::THUMBNAIL_SIZE_KO * 1024 && $quality > 0){
$quality--;
$white->setCompressionQuality($quality);
$data = $white->getImageBlob();
var_dump($quality);
var_dump(strlen($data));
}
$this->_canvas = $white;
我做var_dumps的渲染圖像的字節大小來控制。 但它alaways大小相同:
// var_dump rendered :
int 167963
int 99
int 167963
int 98
int 167963
int 97
int 167963
int 96
int 167963
int 95
int 167963
int 94
int 167963
int 93
int 167963
// etc.
你知道爲什麼Imagick有很奇怪的行爲,或者有什麼錯我的代碼?
謝謝! :)
除了使用正確的功能,你可以使用一個「分裂」的方式來獲得相應的壓縮質量不僅僅是一個「階梯」的方法更快:http://stackoverflow.com/a/19639344/778719 – Danack
好主意,我會做到這一點!謝謝 ! – Thaledric