Media: Avoid running expensive logic twice using GD.
Some checks are pending
Coding Standards / PHP coding standards (push) Waiting to run
Coding Standards / JavaScript coding standards (push) Waiting to run
Coding Standards / Slack Notifications (push) Blocked by required conditions
Coding Standards / Failed workflow tasks (push) Blocked by required conditions
End-to-end Tests / Test with SCRIPT_DEBUG ${{ matrix.LOCAL_SCRIPT_DEBUG && 'enabled' || 'disabled' }} (false) (push) Waiting to run
End-to-end Tests / Test with SCRIPT_DEBUG ${{ matrix.LOCAL_SCRIPT_DEBUG && 'enabled' || 'disabled' }} (true) (push) Waiting to run
End-to-end Tests / Slack Notifications (push) Blocked by required conditions
End-to-end Tests / Failed workflow tasks (push) Blocked by required conditions
JavaScript Tests / QUnit Tests (push) Waiting to run
JavaScript Tests / Slack Notifications (push) Blocked by required conditions
JavaScript Tests / Failed workflow tasks (push) Blocked by required conditions
Performance Tests / Performance tests ${{ matrix.memcached && '(with memcached)' || '' }} (false) (push) Waiting to run
Performance Tests / Performance tests ${{ matrix.memcached && '(with memcached)' || '' }} (true) (push) Waiting to run
Performance Tests / Slack Notifications (push) Blocked by required conditions
Performance Tests / Failed workflow tasks (push) Blocked by required conditions
PHP Compatibility / Check PHP compatibility (push) Waiting to run
PHP Compatibility / Slack Notifications (push) Blocked by required conditions
PHP Compatibility / Failed workflow tasks (push) Blocked by required conditions
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, false, ubuntu-latest, 7.2, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, false, ubuntu-latest, 7.3, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, false, ubuntu-latest, 7.4, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, false, ubuntu-latest, 7.4, example.org:8889) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, false, ubuntu-latest, 8.0, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, false, ubuntu-latest, 8.1, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, false, ubuntu-latest, 8.2, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, false, ubuntu-latest, 8.3, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, false, ubuntu-latest, 8.4, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, true, ubuntu-latest, 7.2, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, true, ubuntu-latest, 7.3, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, true, ubuntu-latest, 7.4, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, true, ubuntu-latest, 7.4, example.org:8889) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, true, ubuntu-latest, 8.0, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, true, ubuntu-latest, 8.1, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, true, ubuntu-latest, 8.2, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, true, ubuntu-latest, 8.3, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, false, true, ubuntu-latest, 8.4, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, true, false, ubuntu-latest, 7.4, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 5.7, true, true, ubuntu-latest, 7.4, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, false, ubuntu-latest, 7.2, true, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, false, ubuntu-latest, 7.3, true, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, false, ubuntu-latest, 7.4, true, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, false, ubuntu-latest, 8.0, true, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, false, ubuntu-latest, 8.1, true, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, false, ubuntu-latest, 8.2, true, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, false, ubuntu-latest, 8.3, true, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, false, ubuntu-latest, 8.4, true, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, true, ubuntu-latest, 7.2, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, true, ubuntu-latest, 7.3, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, true, ubuntu-latest, 7.4, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, true, ubuntu-latest, 8.0, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, true, ubuntu-latest, 8.1, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, true, ubuntu-latest, 8.2, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, true, ubuntu-latest, 8.3, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.0, false, true, ubuntu-latest, 8.4, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, false, ubuntu-latest, 7.2, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, false, ubuntu-latest, 7.3, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, false, ubuntu-latest, 7.4, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, false, ubuntu-latest, 8.0, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, false, ubuntu-latest, 8.1, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, false, ubuntu-latest, 8.2, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, false, ubuntu-latest, 8.3, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, false, ubuntu-latest, 8.4, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, true, ubuntu-latest, 7.2, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, true, ubuntu-latest, 7.3, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, true, ubuntu-latest, 7.4, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, true, ubuntu-latest, 8.0, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, true, ubuntu-latest, 8.1, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, true, ubuntu-latest, 8.2, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, true, ubuntu-latest, 8.3, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mysql, 8.4, false, true, ubuntu-latest, 8.4, example.org) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, false, ubuntu-latest, 7.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, false, ubuntu-latest, 7.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, false, ubuntu-latest, 7.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, false, ubuntu-latest, 8.0) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, false, ubuntu-latest, 8.1) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, false, ubuntu-latest, 8.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, false, ubuntu-latest, 8.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, false, ubuntu-latest, 8.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, true, ubuntu-latest, 7.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, true, ubuntu-latest, 7.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, true, ubuntu-latest, 7.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, true, ubuntu-latest, 8.0) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, true, ubuntu-latest, 8.1) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, true, ubuntu-latest, 8.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, true, ubuntu-latest, 8.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.11, false, true, ubuntu-latest, 8.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, false, ubuntu-latest, 7.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, false, ubuntu-latest, 7.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, false, ubuntu-latest, 7.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, false, ubuntu-latest, 8.0) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, false, ubuntu-latest, 8.1) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, false, ubuntu-latest, 8.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, false, ubuntu-latest, 8.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, false, ubuntu-latest, 8.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, true, ubuntu-latest, 7.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, true, ubuntu-latest, 7.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, true, ubuntu-latest, 7.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, true, ubuntu-latest, 8.0) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, true, ubuntu-latest, 8.1) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, true, ubuntu-latest, 8.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, true, ubuntu-latest, 8.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.4, false, true, ubuntu-latest, 8.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, false, ubuntu-latest, 7.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, false, ubuntu-latest, 7.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, false, ubuntu-latest, 7.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, false, ubuntu-latest, 8.0) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, false, ubuntu-latest, 8.1) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, false, ubuntu-latest, 8.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, false, ubuntu-latest, 8.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, false, ubuntu-latest, 8.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, true, ubuntu-latest, 7.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, true, ubuntu-latest, 7.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, true, ubuntu-latest, 7.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, true, ubuntu-latest, 8.0) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, true, ubuntu-latest, 8.1) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, true, ubuntu-latest, 8.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, true, ubuntu-latest, 8.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 10.6, false, true, ubuntu-latest, 8.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, false, ubuntu-latest, 7.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, false, ubuntu-latest, 7.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, false, ubuntu-latest, 7.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, false, ubuntu-latest, 8.0) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, false, ubuntu-latest, 8.1) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, false, ubuntu-latest, 8.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, false, ubuntu-latest, 8.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, false, ubuntu-latest, 8.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, true, ubuntu-latest, 7.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, true, ubuntu-latest, 7.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, true, ubuntu-latest, 7.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, true, ubuntu-latest, 8.0) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, true, ubuntu-latest, 8.1) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, true, ubuntu-latest, 8.2) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, true, ubuntu-latest, 8.3) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, false, true, ubuntu-latest, 8.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, true, false, ubuntu-latest, 7.4) (push) Waiting to run
PHPUnit Tests / PHP ${{ matrix.php }} (mariadb, 11.2, true, true, ubuntu-latest, 7.4) (push) Waiting to run
PHPUnit Tests / Slack Notifications (push) Blocked by required conditions
PHPUnit Tests / Failed workflow tasks (push) Blocked by required conditions
Test Build Processes / Core running from ${{ matrix.directory }} (build, ubuntu-latest, ${{ github.event_name == 'pull_request' && true || '' }}, true) (push) Waiting to run
Test Build Processes / Core running from ${{ matrix.directory }} (build, windows-latest) (push) Waiting to run
Test Build Processes / Core running from ${{ matrix.directory }} (src, ubuntu-latest) (push) Waiting to run
Test Build Processes / Core running from ${{ matrix.directory }} (src, windows-latest) (push) Waiting to run
Test Build Processes / Core running from ${{ matrix.directory }} (build, macos-latest) (push) Waiting to run
Test Build Processes / Core running from ${{ matrix.directory }} (src, macos-latest) (push) Waiting to run
Test Build Processes / Gutenberg running from ${{ matrix.directory }} (build, ubuntu-latest) (push) Waiting to run
Test Build Processes / Gutenberg running from ${{ matrix.directory }} (build, windows-latest) (push) Waiting to run
Test Build Processes / Gutenberg running from ${{ matrix.directory }} (src, ubuntu-latest) (push) Waiting to run
Test Build Processes / Gutenberg running from ${{ matrix.directory }} (src, windows-latest) (push) Waiting to run
Test Build Processes / Gutenberg running from ${{ matrix.directory }} (build, macos-latest) (push) Waiting to run
Test Build Processes / Gutenberg running from ${{ matrix.directory }} (src, macos-latest) (push) Waiting to run
Test Build Processes / Slack Notifications (push) Blocked by required conditions
Test Build Processes / Failed workflow tasks (push) Blocked by required conditions

Support for uploading AVIF was added in [57524]. A new block of conditional logic was added determine which function should be used to create the new image file that resulted in these expensive functions being run twice.

This combines the two conditional logic to ensure the appropriate function is only run once regardless of format.

Reviewed by adamsilverstein.
Merges [59413] to the 6.7 branch.

Props adamsilverstein, glynnquelch.
Fixes #62331.

git-svn-id: https://develop.svn.wordpress.org/branches/6.7@59423 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Jonathan Desrosiers 2024-11-19 20:21:31 +00:00
parent 7f370353a9
commit a4315262ff

View File

@ -103,20 +103,13 @@ class WP_Image_Editor_GD extends WP_Image_Editor {
return new WP_Error( 'error_loading_image', __( 'File does not exist?' ), $this->file );
}
// WebP may not work with imagecreatefromstring().
// Handle WebP and AVIF mime types explicitly, falling back to imagecreatefromstring.
if (
function_exists( 'imagecreatefromwebp' ) &&
( 'image/webp' === wp_get_image_mime( $this->file ) )
function_exists( 'imagecreatefromwebp' ) && ( 'image/webp' === wp_get_image_mime( $this->file ) )
) {
$this->image = @imagecreatefromwebp( $this->file );
} else {
$this->image = @imagecreatefromstring( $file_contents );
}
// AVIF may not work with imagecreatefromstring().
if (
function_exists( 'imagecreatefromavif' ) &&
( 'image/avif' === wp_get_image_mime( $this->file ) )
} elseif (
function_exists( 'imagecreatefromavif' ) && ( 'image/avif' === wp_get_image_mime( $this->file ) )
) {
$this->image = @imagecreatefromavif( $this->file );
} else {