Skip to content

Commit 8d985e9

Browse files
committed
Advanced image compression: remove posterization
This removes the posterization filter from the advanced image compression settings to substantially reduce the CPU load which could cause image resizing to fail (see #150). After digging into the research @nwtn did to come up with these settings, it turns out that posterization only improves file sizes for PNGs and can actually lead to slightly larger file sizes for JPG images.
1 parent 768cec8 commit 8d985e9

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

class-respimg.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ class Respimg extends Imagick {
2929
*
3030
* This function is basically equivalent to:
3131
*
32-
* $optim == true: `mogrify -path OUTPUT_PATH -filter Triangle -define filter:support=2.0 -thumbnail OUTPUT_WIDTH -unsharp 0.25x0.08+8.3+0.045 -dither None -posterize 136 -quality 82 -define jpeg:fancy-upsampling=off -define png:compression-filter=5 -define png:compression-level=9 -define png:compression-strategy=1 -define png:exclude-chunk=all -interlace none -colorspace sRGB INPUT_PATH`
32+
* $optim == true: `mogrify -path OUTPUT_PATH -filter Triangle -define filter:support=2.0 -thumbnail OUTPUT_WIDTH -unsharp 0.25x0.08+8.3+0.045 -quality 82 -define jpeg:fancy-upsampling=off -define png:compression-filter=5 -define png:compression-level=9 -define png:compression-strategy=1 -define png:exclude-chunk=all -interlace none -colorspace sRGB INPUT_PATH`
3333
*
34-
* $optim == false: `mogrify -path OUTPUT_PATH -filter Triangle -define filter:support=2.0 -thumbnail OUTPUT_WIDTH -unsharp 0.25x0.25+8+0.065 -dither None -posterize 136 -quality 82 -define jpeg:fancy-upsampling=off -define png:compression-filter=5 -define png:compression-level=9 -define png:compression-strategy=1 -define png:exclude-chunk=all -interlace none -colorspace sRGB -strip INPUT_PATH`
34+
* $optim == false: `mogrify -path OUTPUT_PATH -filter Triangle -define filter:support=2.0 -thumbnail OUTPUT_WIDTH -unsharp 0.25x0.25+8+0.065 -quality 82 -define jpeg:fancy-upsampling=off -define png:compression-filter=5 -define png:compression-level=9 -define png:compression-strategy=1 -define png:exclude-chunk=all -interlace none -colorspace sRGB -strip INPUT_PATH`
3535
*
3636
* @access public
3737
*
@@ -50,7 +50,7 @@ public function smartResize( $columns, $rows, $optim = false ) {
5050
} else {
5151
$this->unsharpMaskImage( 0.25, 0.25, 8, 0.065 );
5252
}
53-
$this->posterizeImage( 136, false );
53+
5454
$this->setImageCompressionQuality( 82 );
5555
$this->setOption( 'jpeg:fancy-upsampling', 'off' );
5656
$this->setOption( 'png:compression-filter', '5' );

0 commit comments

Comments
 (0)