X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/48ab98cb1779cf2088c1351ac3dd3d0da6fb31d3..caeaf8dc94b5e3f75dc98ec92dc7b76049cdddb6:/wp-includes/class-wp-image-editor.php diff --git a/wp-includes/class-wp-image-editor.php b/wp-includes/class-wp-image-editor.php index 5792df31..fcca5574 100644 --- a/wp-includes/class-wp-image-editor.php +++ b/wp-includes/class-wp-image-editor.php @@ -213,9 +213,31 @@ abstract class WP_Image_Editor { */ public function get_quality() { if ( ! $this->quality ) { + $this->set_quality(); + } + + return $this->quality; + } + + /** + * Sets Image Compression quality on a 1-100% scale. + * + * @since 3.5.0 + * @access public + * + * @param int $quality Compression Quality. Range: [1,100] + * @return boolean|WP_Error True if set successfully; WP_Error on failure. + */ + public function set_quality( $quality = null ) { + if ( null === $quality ) { /** * Filter the default image compression quality setting. * + * Applies only during initial editor instantiation, or when set_quality() is run + * manually without the `$quality` argument. + * + * set_quality() has priority over the filter. + * * @since 3.5.0 * * @param int $quality Quality level between 1 (low) and 100 (high). @@ -227,6 +249,11 @@ abstract class WP_Image_Editor { /** * Filter the JPEG compression quality for backward-compatibility. * + * Applies only during initial editor instantiation, or when set_quality() is run + * manually without the `$quality` argument. + * + * set_quality() has priority over the filter. + * * The filter is evaluated under two contexts: 'image_resize', and 'edit_image', * (when a JPEG image is saved to file). * @@ -236,28 +263,15 @@ abstract class WP_Image_Editor { * @param string $context Context of the filter. */ $quality = apply_filters( 'jpeg_quality', $quality, 'image_resize' ); + } - if ( ! $this->set_quality( $quality ) ) { - $this->quality = $this->default_quality; - } + if ( $quality < 0 || $quality > 100 ) { + $quality = $this->default_quality; } } - return $this->quality; - } - - /** - * Sets Image Compression quality on a 1-100% scale. - * - * @since 3.5.0 - * @access public - * - * @param int $quality Compression Quality. Range: [1,100] - * @return boolean|WP_Error True if set successfully; WP_Error on failure. - */ - public function set_quality( $quality = null ) { // Allow 0, but squash to 1 due to identical images in GD, and for backwards compatibility. - if ( $quality == 0 ) { + if ( 0 === $quality ) { $quality = 1; }