wp_get_avif_info()WP 6.5.0

Извлекает метаданные указанной AVIF картинки. Такие как: ширина, высота, глубина цвета и количество каналов.

Анализирует указанный AVIF-файл и возвращает его технические характеристики в виде массива.

Часть внутреннего механизма WordPress для работы с современными форматами изображений.

В основном используется как вспомогательная для wp_getimagesize() в тех случаях, когда версия PHP на сервере не имеет встроенной поддержки AVIF (до PHP 8.1).

Для получения информации об изображении рекомендуется использовать wp_getimagesize(), которая автоматически определит, как обработать файл, и при необходимости будет использовать эту фукнцию.

Работает на основе: wp_get_image_mime(), Parser::parse_ftyp()

Хуков нет.

Возвращает

Массив.

  • array
    • Ассоциативный массив с информацией об AVIF-изображении, содержащий следующие ключи:
      • width (int|false): Ширина изображения в пикселях.
      • height (int|false): Высота изображения в пикселях.
      • bit_depth (int|false): Глубина цвета.
      • num_channels (int|false): Количество каналов.
    • false - когда файл не является изображением AVIF или произошла ошибка.

Использование

wp_get_avif_info( $filename );
$filename(string) (обязательный)
Полный путь к файлу изображения в формате AVIF.

Примеры

0

#1 Получение информации о AVIF-файле

Этот пример показывает, как использовать функцию для получения метаданных из файла example.avif.

// Предположим, что в папке 'uploads' есть файл 'image.avif'
$upload_dir = wp_upload_dir();
$file_path  = $upload_dir['basedir'] . '/image.avif';

// Проверяем, существует ли файл, прежде чем получить информацию
if ( file_exists( $file_path ) ) {
	$avif_info = wp_get_avif_info( $file_path );

	if ( $avif_info['width'] ) {
		printf(
			'Информация об изображении: Ширина: %dpx, Высота: %dpx, Глубина цвета: %d, Каналы: %d',
			$avif_info['width'],
			$avif_info['height'],
			$avif_info['bit_depth'],
			$avif_info['num_channels']
		);
	} else {
		echo 'Не удалось получить информацию. Возможно, это не AVIF файл.';
	}
} else {
	echo 'Файл не найден.';
}

Список изменений

С версии 6.5.0 Введена.

Код wp_get_avif_info() WP 6.9

function wp_get_avif_info( $filename ) {
	$results = array(
		'width'        => false,
		'height'       => false,
		'bit_depth'    => false,
		'num_channels' => false,
	);

	if ( 'image/avif' !== wp_get_image_mime( $filename ) ) {
		return $results;
	}

	// Parse the file using libavifinfo's PHP implementation.
	require_once ABSPATH . WPINC . '/class-avif-info.php';

	$handle = fopen( $filename, 'rb' );
	if ( $handle ) {
		$parser  = new Avifinfo\Parser( $handle );
		$success = $parser->parse_ftyp() && $parser->parse_file();
		fclose( $handle );
		if ( $success ) {
			$results = $parser->features->primary_item_features;
		}
	}
	return $results;
}