A workaround by extending the `WP_Image_Editor_GD` class ---------------------------------- Note that the [`image_resize()`][1] function is [deprecated][2] and it's for example used as a callback for the `jpeg_quality` filter: $quality = apply_filters( 'jpeg_quality', $quality, 'image_resize' ); I'm sure this callback will be replaced soon with the relevant `resize` method. But we could also use the `wp_editor_set_quality` filter to change the quality of intermediate *jpeg* image sizes. Here's one idea: add_filter( 'jpeg_quality', function( $quality ) { add_filter( 'wpse_make_image_arguments', function( $arguments, $filename, $function, $size ) { // -------------------------------------------- // Extract the width/height from the $size // and modify the quality settings in $arguments[2] accordingly: if( isset($size['height']) && isset($size['width']) && isset($arguments[2]) ){ // Modify this part to your needs: if( $size['height'] <= 150 && $size['width'] <= 150 ) { $arguments[2] = '50' } } // -------------------------------------------- return $arguments; }, 10, 4 ); return $quality; } ); where we've extended the `WP_Image_Editor_GD` class: add_filter( 'wp_image_editors', function( $editors ) { // Note that the WP_Image_Editor_GD and WP_Image_Editor_Imagick classes // are included within this filter. So let's do the same for our extension class. // Our extended class: class WP_Image_Editor_GD_WPSE extends WP_Image_Editor_GD { protected function make_image( $filename, $function, $arguments ) { if ( wp_is_stream( $filename ) ) $arguments[1] = null; // Add a custom filter: $arguments = apply_filters( 'wpse_make_image_arguments', $arguments, $filename, $this->size, $function ); return parent::make_image( $filename, $function, $arguments ); } } // Prepend the extended class to the array of image editors: array_unshift( $editors, 'WP_Image_Editor_GD_WPSE' ); return $editors; } ); where we introduced the custom `wpse_make_image_arguments` filter. This way we can modify the quality settings, before the intermediate files are saved. *PS:* I didn't check out the case when the *Imagick* library is used instead, but I guess we could do something similar by extending the `WP_Image_Editor_Imagick` class. [1]: http://codex.wordpress.org/Function_Reference/image_resize [2]: http://codex.wordpress.org/Function_Reference/image_resize