Функция wp_get_avif_info()
в WordPress извлекает метаинформацию об AVIF-изображении, такую как ширина, высота, глубина цвета и количество каналов. Эта функция полезна для работы с изображениями формата AVIF, поскольку позволяет получить информацию о них до вывода на сайт или дальнейшей обработки.
wp_get_avif_info()
принимает путь к AVIF-файлу и возвращает массив с информацией о нём. В массив включаются такие параметры, как ширина и высота изображения, глубина цвета и количество каналов. Если функция не может получить данные, возвращаемые значения будут false
.
wp_get_avif_info( $filename );
Параметры:
$filename
(string) — Обязательный параметр, путь к файлу в формате AVIF.
Возвращаемое значение: Функция возвращает массив с ключами:
width
(int|false) — Ширина изображения илиfalse
, если не удалось получить значение.height
(int|false) — Высота изображения илиfalse
при ошибке.bit_depth
(int|false) — Глубина цвета илиfalse
.num_channels
(int|false) — Количество каналов (например, 3 для RGB или 4 для RGBA) илиfalse
.
Пример 1: Получение информации об AVIF-изображении для проверки перед загрузкой
Допустим, вы хотите проверить информацию об изображении перед его загрузкой, чтобы убедиться, что его ширина и высота не превышают определённые значения:
$avif_path = '/wp-content/uploads/2024/11/sample-image.avif';
$image_info = wp_get_avif_info( $avif_path );
if ( $image_info && $image_info['width'] <= 1920 && $image_info['height'] <= 1080 ) {
echo "Изображение подходит для загрузки.";
} else {
echo "Изображение превышает допустимые размеры.";
}
Результат: Если ширина и высота изображения не превышают 1920×1080, выводится сообщение о допустимости загрузки.
Пример 2: Проверка глубины цвета изображения перед применением фильтров
Предположим, вы хотите применять фильтры только к изображениям с глубиной цвета 8 бит и выше:
$avif_file = '/wp-content/uploads/2024/11/another-sample-image.avif';
$info = wp_get_avif_info( $avif_file );
if ( $info && $info['bit_depth'] >= 8 ) {
echo "Изображение имеет подходящую глубину цвета для фильтров.";
} else {
echo "Изображение имеет низкую глубину цвета и не подходит для фильтров.";
}
Результат: Если глубина цвета изображения 8 бит или больше, то фильтры будут применяться.
Пример 3: Получение количества каналов для настройки отображения
Этот пример показывает, как использовать wp_get_avif_info()
для определения, является ли изображение прозрачным, чтобы подготовить его к правильному отображению.
$image_path = '/wp-content/uploads/2024/11/transparent-image.avif';
$avif_info = wp_get_avif_info( $image_path );
if ( $avif_info && $avif_info['num_channels'] === 4 ) {
echo "Изображение имеет прозрачный канал.";
} else {
echo "Изображение без прозрачного канала.";
}
Результат: Если изображение имеет 4 канала, выводится сообщение о наличии прозрачного канала, иначе — сообщение о его отсутствии.
Пример 4: Вывод метаинформации для отладки
Для проверки параметров AVIF-файла, например, при разработке, можно вывести все параметры изображения:
$avif_file_path = '/wp-content/uploads/2024/11/debug-sample.avif';
$avif_metadata = wp_get_avif_info( $avif_file_path );
if ( $avif_metadata ) {
echo "Ширина: " . $avif_metadata['width'] . " пикселей<br>";
echo "Высота: " . $avif_metadata['height'] . " пикселей<br>";
echo "Глубина цвета: " . $avif_metadata['bit_depth'] . " бит<br>";
echo "Количество каналов: " . $avif_metadata['num_channels'];
} else {
echo "Не удалось получить информацию об изображении.";
}
Результат: Скрипт выводит ширину, высоту, глубину цвета и количество каналов изображения для удобного анализа.
Заключение
Функция wp_get_avif_info()
предоставляет полезный набор данных для работы с AVIF-изображениями в WordPress, позволяя разработчикам динамически управлять отображением и обработкой изображений.