Make WordPress Core


Ignore:
Timestamp:
11/29/2024 11:46:50 PM (5 months ago)
Author:
adamsilverstein
Message:

Media: improve filter to enable setting output quality by image size.

Add a new $size parameter to the wp_editor_set_quality filter. $size is an array with 'width' and 'height' keys. Developers can use this information to set image quality based on the image size.

Props adamsilverstein, joemcgill, Mte90, codekraft, birgire, azaozz, sppramodh.
Fixes #54648.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-image-editor-imagick.php

    r59406 r59473  
    191191     *
    192192     * @since 3.5.0
    193      *
    194      * @param int $quality Compression Quality. Range: [1,100]
     193     * @since 6.8.0 The `$dims` parameter was added.
     194     *
     195     * @param int   $quality Compression Quality. Range: [1,100]
     196     * @param array $dims    Optional. Image dimensions array with 'width' and 'height' keys.
    195197     * @return true|WP_Error True if set successfully; WP_Error on failure.
    196198     */
    197     public function set_quality( $quality = null ) {
    198         $quality_result = parent::set_quality( $quality );
     199    public function set_quality( $quality = null, $dims = array() ) {
     200        $quality_result = parent::set_quality( $quality, $dims );
    199201        if ( is_wp_error( $quality_result ) ) {
    200202            return $quality_result;
     
    368370        }
    369371
     372        $this->set_quality(
     373            null,
     374            array(
     375                'width'  => $dst_w,
     376                'height' => $dst_h,
     377            )
     378        );
     379
    370380        // Execute the resize.
    371381        $thumb_result = $this->thumbnail_image( $dst_w, $dst_h );
Note: See TracChangeset for help on using the changeset viewer.