# wp_get_webp_info()

URL: https://chugunov.pro/api-wordpress/functions/wp_get_webp_info/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 5.8.0.

## Сигнатура

```php
wp_get_webp_info( string $filename ): array
```

## Описание

Извлекает метаданные о файле WebP: ширину, высоту и тип.

## Параметры

- `$filename` `string` — обязательный. Путь к файлу WebP.

## Возвращаемое значение

`array` — width int|false Ширина изображения при успехе, false при неудаче. height int|false Высота изображения при успехе, false при неудаче. type string|false Тип WebP: одно из значений 'lossy', 'lossless' или 'animated-alpha'. false при неудаче.

## Исходный код

Файл: `wp-includes/media.php:5902`

```php
function wp_get_webp_info( $filename ) {
	$width  = false;
	$height = false;
	$type   = false;

	if ( 'image/webp' !== wp_get_image_mime( $filename ) ) {
		return compact( 'width', 'height', 'type' );
	}

	$magic = file_get_contents( $filename, false, null, 0, 40 );

	if ( false === $magic ) {
		return compact( 'width', 'height', 'type' );
	}

	// Make sure we got enough bytes.
	if ( strlen( $magic ) < 40 ) {
		return compact( 'width', 'height', 'type' );
	}

	/*
	 * The headers are a little different for each of the three formats.
	 * Header values based on WebP docs, see https://developers.google.com/speed/webp/docs/riff_container.
	 */
	switch ( substr( $magic, 12, 4 ) ) {
		// Lossy WebP.
		case 'VP8 ':
			$parts  = unpack( 'v2', substr( $magic, 26, 4 ) );
			$width  = (int) ( $parts[1] & 0x3FFF );
			$height = (int) ( $parts[2] & 0x3FFF );
			$type   = 'lossy';
			break;
		// Lossless WebP.
		case 'VP8L':
			$parts  = unpack( 'C4', substr( $magic, 21, 4 ) );
			$width  = (int) ( $parts[1] | ( ( $parts[2] & 0x3F ) << 8 ) ) + 1;
			$height = (int) ( ( ( $parts[2] & 0xC0 ) >> 6 ) | ( $parts[3] << 2 ) | ( ( $parts[4] & 0x03 ) << 10 ) ) + 1;
			$type   = 'lossless';
			break;
		// Animated/alpha WebP.
		case 'VP8X':
			// Pad 24-bit int.
			$width = unpack( 'V', substr( $magic, 24, 3 ) . "\x00" );
			$width = (int) ( $width[1] & 0xFFFFFF ) + 1;
			// Pad 24-bit int.
			$height = unpack( 'V', substr( $magic, 27, 3 ) . "\x00" );
			$height = (int) ( $height[1] & 0xFFFFFF ) + 1;
			$type   = 'animated-alpha';
			break;
	}

	return compact( 'width', 'height', 'type' );
}
```

## История изменений

- 5.8.0 — Introduced.

## Связанные

Использует: [`wp_get_image_mime`](https://chugunov.pro/api-wordpress/functions/wp_get_image_mime/).
Используется в: `WP_Image_Editor_GD::set_quality`, [`wp_getimagesize`](https://chugunov.pro/api-wordpress/functions/wp_getimagesize/), `WP_Image_Editor_Imagick::set_quality`.

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_get_webp_info/
