diff --git a/src/wp-includes/class-wp-image-editor-gd.php b/src/wp-includes/class-wp-image-editor-gd.php
index 23331c7f19..938ae61d48 100644
a
|
b
|
class WP_Image_Editor_GD extends WP_Image_Editor { |
504 | 504 | $filename = $this->generate_filename( null, null, $extension ); |
505 | 505 | } |
506 | 506 | |
| 507 | if ( function_exists( 'imageinterlace' ) ) { |
| 508 | /** This filter is documented in wp-includes/class-wp-image-editor-imagick.php */ |
| 509 | imageinterlace( $image, apply_filters( 'image_save_progressive', false, $mime_type ) ); |
| 510 | } |
| 511 | |
507 | 512 | if ( 'image/gif' === $mime_type ) { |
508 | 513 | if ( ! $this->make_image( $filename, 'imagegif', array( $image, $filename ) ) ) { |
509 | 514 | return new WP_Error( 'image_save_error', __( 'Image Editor Save Failed' ) ); |
diff --git a/src/wp-includes/class-wp-image-editor-imagick.php b/src/wp-includes/class-wp-image-editor-imagick.php
index 546ad3e799..410d719088 100644
a
|
b
|
class WP_Image_Editor_Imagick extends WP_Image_Editor { |
489 | 489 | $this->image->setImageDepth( 8 ); |
490 | 490 | } |
491 | 491 | } |
492 | | |
493 | | if ( is_callable( array( $this->image, 'setInterlaceScheme' ) ) && defined( 'Imagick::INTERLACE_NO' ) ) { |
494 | | $this->image->setInterlaceScheme( Imagick::INTERLACE_NO ); |
495 | | } |
496 | 492 | } catch ( Exception $e ) { |
497 | 493 | return new WP_Error( 'image_resize_error', $e->getMessage() ); |
498 | 494 | } |
… |
… |
class WP_Image_Editor_Imagick extends WP_Image_Editor { |
825 | 821 | return new WP_Error( 'image_save_error', $e->getMessage(), $filename ); |
826 | 822 | } |
827 | 823 | |
| 824 | if ( method_exists( $this->image, 'setInterlaceScheme' ) && method_exists( $this->image, 'getInterlaceScheme' ) && defined( 'Imagick::INTERLACE_PLANE' ) ) { |
| 825 | $orig_interlace = $this->image->getInterlaceScheme(); |
| 826 | /** |
| 827 | * Filters whether to use output interlaced (progressive) images if available. |
| 828 | * |
| 829 | * @since 6.5.0 |
| 830 | * |
| 831 | * @param bool $interlace Whether to use interlaced (progressive) images if available. Default false. |
| 832 | * @param string $mime_type The mime type being saved. |
| 833 | */ |
| 834 | if ( apply_filters( 'image_save_progressive', false, $mime_type ) ) { |
| 835 | $this->image->setInterlaceScheme( Imagick::INTERLACE_NONE ); |
| 836 | } else { |
| 837 | $this->image->setInterlaceScheme( Imagick::INTERLACE_PLANE ); |
| 838 | } |
| 839 | } |
| 840 | |
828 | 841 | $write_image_result = $this->write_image( $this->image, $filename ); |
829 | 842 | if ( is_wp_error( $write_image_result ) ) { |
830 | 843 | return $write_image_result; |
… |
… |
class WP_Image_Editor_Imagick extends WP_Image_Editor { |
833 | 846 | try { |
834 | 847 | // Reset original format. |
835 | 848 | $this->image->setImageFormat( $orig_format ); |
| 849 | if ( isset( $orig_interlace ) ) { |
| 850 | $this->image->setInterlaceScheme( $orig_interlace ); |
| 851 | } |
836 | 852 | } catch ( Exception $e ) { |
837 | 853 | return new WP_Error( 'image_save_error', $e->getMessage(), $filename ); |
838 | 854 | } |