WP_Image_Editor::set_quality() WordPress Method
The WP_Image_Editor::set_quality() function sets the image quality for the current image. This is a percentage value, with 100 being the highest quality. The default value is 75.
WP_Image_Editor::set_quality( int $quality = null ) #
Sets Image Compression quality on a 1-100% scale.
Parameters
- $quality
(int)(Optional)Compression Quality. Range: [1,100]
Default value: null
Return
(true|WP_Error) True if set successfully; WP_Error on failure.
More Information
Default quality defined in WP_Image_Editor class is 90.
Source
File: wp-includes/class-wp-image-editor.php
public function set_quality( $quality = null ) { // Use the output mime type if present. If not, fall back to the input/initial mime type. $mime_type = ! empty( $this->output_mime_type ) ? $this->output_mime_type : $this->mime_type; // Get the default quality setting for the mime type. $default_quality = $this->get_default_quality( $mime_type ); if ( null === $quality ) { /** * Filters the default image compression quality setting. * * Applies only during initial editor instantiation, or when set_quality() is run * manually without the `$quality` argument. * * The WP_Image_Editor::set_quality() method has priority over the filter. * * @since 3.5.0 * * @param int $quality Quality level between 1 (low) and 100 (high). * @param string $mime_type Image mime type. */ $quality = apply_filters( 'wp_editor_set_quality', $default_quality, $mime_type ); if ( 'image/jpeg' === $mime_type ) { /** * Filters the JPEG compression quality for backward-compatibility. * * Applies only during initial editor instantiation, or when set_quality() is run * manually without the `$quality` argument. * * The WP_Image_Editor::set_quality() method 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). * * @since 2.5.0 * * @param int $quality Quality level between 0 (low) and 100 (high) of the JPEG. * @param string $context Context of the filter. */ $quality = apply_filters( 'jpeg_quality', $quality, 'image_resize' ); } if ( $quality < 0 || $quality > 100 ) { $quality = $default_quality; } } // Allow 0, but squash to 1 due to identical images in GD, and for backward compatibility. if ( 0 === $quality ) { $quality = 1; } if ( ( $quality >= 1 ) && ( $quality <= 100 ) ) { $this->quality = $quality; return true; } else { return new WP_Error( 'invalid_image_quality', __( 'Attempted to set image quality outside of the range [1,100].' ) ); } }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
3.5.0 | Introduced. |