WordPress at a glance
function is not described

_wp_image_editor_choose() WP 3.5.0

Tests which editors are capable of supporting the request.

This is an internal function for using it by WP core itself. It's not recommended to use this function in your code.

Hooks from the function
Return

String|false. Class name for the first editor that claims to support the request. False if no editor claims to support the request.

Usage

_wp_image_editor_choose( $args );
$args(array)
Array of arguments for choosing a capable editor.
Default: empty array

Changelog

Since 3.5.0 Introduced.

Code of _wp_image_editor_choose() WP 5.7

<?php
function _wp_image_editor_choose( $args = array() ) {
	require_once ABSPATH . WPINC . '/class-wp-image-editor.php';
	require_once ABSPATH . WPINC . '/class-wp-image-editor-gd.php';
	require_once ABSPATH . WPINC . '/class-wp-image-editor-imagick.php';
	/**
	 * Filters the list of image editing library classes.
	 *
	 * @since 3.5.0
	 *
	 * @param string[] $image_editors Array of available image editor class names. Defaults are
	 *                                'WP_Image_Editor_Imagick', 'WP_Image_Editor_GD'.
	 */
	$implementations = apply_filters( 'wp_image_editors', array( 'WP_Image_Editor_Imagick', 'WP_Image_Editor_GD' ) );

	foreach ( $implementations as $implementation ) {
		if ( ! call_user_func( array( $implementation, 'test' ), $args ) ) {
			continue;
		}

		if ( isset( $args['mime_type'] ) &&
			! call_user_func(
				array( $implementation, 'supports_mime_type' ),
				$args['mime_type']
			) ) {
			continue;
		}

		if ( isset( $args['methods'] ) &&
			array_diff( $args['methods'], get_class_methods( $implementation ) ) ) {

			continue;
		}

		return $implementation;
	}

	return false;
}