wp_getimagesize() – Allows PHP’s getimagesize() to be debuggable when necessary.

You appear to be a bot. Output may be restricted

Description

Allows PHP's getimagesize() to be debuggable when necessary.

Usage

$array|false = wp_getimagesize( $filename, $image_info );

Parameters

$filename
( string ) required – The file path.
$image_info
( array ) optional – Optional. Extended image information (passed by reference).

Returns

array|false Array of image information or false on failure.

Source

File name: wordpress/wp-includes/media.php
Lines:

1 to 59 of 59
function wp_getimagesize( $filename, array &$image_info = null ) {
  // Don't silence errors when in debug mode, unless running unit tests.
  if ( defined( 'WP_DEBUG' ) && WP_DEBUG
    && ! defined( 'WP_RUN_CORE_TESTS' )
  ) {
    if ( 2 === func_num_args() ) {
      $info = getimagesize( $filename, $image_info );
    } else {
      $info = getimagesize( $filename );
    }
  } else {
    /*
		 * Silencing notice and warning is intentional.
		 *
		 * getimagesize() has a tendency to generate errors, such as
		 * "corrupt JPEG data: 7191 extraneous bytes before marker",
		 * even when it's able to provide image size information.
		 *
		 * See https://core.trac.wordpress.org/ticket/42480
		 */
    if ( 2 === func_num_args() ) {
      $info = @getimagesize( $filename, $image_info );
    } else {
      $info = @getimagesize( $filename );
    }
  }

  if ( false !== $info ) {
    return $info;
  }

  /*
	 * For PHP versions that don't support WebP images,
	 * extract the image size info from the file headers.
	 */
  if ( 'image/webp' === wp_get_image_mime( $filename ) ) {
    $webp_info = wp_get_webp_info( $filename );
    $width     = $webp_info['width'];
    $height    = $webp_info['height'];

    // Mimic the native return format.
    if ( $width && $height ) {
      return array(
        $width,
        $height,
        IMAGETYPE_WEBP,
        sprintf(
          'width="%d" height="%d"',
          $width,
          $height
        ),
        'mime' => 'image/webp',
      );
    }
  }

  // The image could not be parsed.
  return false;
}
 

 View on GitHub View on Trac