Imagick を使用して画像 (主に JPEG) を圧縮していますが、結果はかなりランダムです。たとえば、次の結果を確認してください (おおよその数値とすべての JPEG)。
1600kb -> 600kb (保存された 1000kb)
1000kb -> 1200kb (無駄な 200kb)
400kb -> 500kb (無駄な 100kb)
使用したコードは次のとおりです。
$image = new Imagick($path);
$image->stripImage(); // remove metadata, though Imagick adds its own, not sure why
$image->setImageCompressionQuality(0); // lossless compression
$image->writeImages($path, true); // writeImages instead of writeImage, in case it's a GIF