wp_get_image_editor()

Возвращает экземпляр WP_Image_Editor и загружает в него файл изображения
Функция WordPress
INT 3.5.0
WordPress Icon

Описание функции

Функция wp_get_image_editor() возвращает экземпляр класса WP_Image_Editor и загружает файл в него. Она используется для работы с изображениями в WordPress, таких как изменение размера, обрезка, поворот и другие манипуляции с изображениями.

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

wp_get_image_editor( string $path, array $args = array() ): WP_Image_Editor|WP_Error

Функция принимает два параметра: $path (обязательный) — путь к загружаемому файлу, и $args (необязательный) — дополнительные аргументы для получения редактора изображений. По умолчанию, $args является пустым массивом.

  • $path (string, обязательный) — Путь к файлу, который нужно загрузить.
  • $args (array, необязательный) — Дополнительные аргументы для получения редактора изображений. По умолчанию: array().

Функция возвращает объект WP_Image_Editor в случае успеха и объект WP_Error в противном случае.

<?php
// Путь к загружаемому файлу
$file_path = '/path/to/image.jpg';
// Дополнительные аргументы
$args = array(
  'mime_type' => 'image/jpeg',
  'methods' => array( 'resize', 'rotate' ),
);
// Получение экземпляра WP_Image_Editor
$image_editor = wp_get_image_editor( $file_path, $args );
// Проверка на ошибки
if ( ! is_wp_error( $image_editor ) ) {
  // Редактирование изображения
  $image_editor->resize( 800, 600 );
  $image_editor->rotate( 90 );
  // Сохранение изменений
  $saved = $image_editor->save( '/path/to/edited_image.jpg' );
  if ( ! is_wp_error( $saved ) ) {
    echo 'Изображение успешно отредактировано и сохранено.';
  } else {
    echo 'Ошибка при сохранении изображения: ' . $saved->get_error_message();
  }
} else {
  echo 'Ошибка при загрузке изображения: ' . $image_editor->get_error_message();
}
?>

В приведенном выше примере мы сначала указываем путь к загружаемому файлу и опциональные аргументы, такие как тип MIME изображения и доступные методы редактирования. Затем мы вызываем функцию wp_get_image_editor() с этими параметрами, чтобы получить экземпляр класса WP_Image_Editor.

Мы проверяем, не является ли полученный объект ошибкой, и если нет, то выполняем несколько операций редактирования изображения, таких как изменение размера и поворот. Затем мы сохраняем отредактированное изображение и выводим сообщение об успехе или ошибке в зависимости от результата сохранения.

Примеры использования

Загрузка изображения и создание экземпляра WP_Image_Editor


// Путь к файлу изображения
$image_path = '/path/to/image.jpg';
// Получение экземпляра WP_Image_Editor
$image_editor = wp_get_image_editor( $image_path );
// Проверка на ошибку
if ( ! is_wp_error( $image_editor ) ) {
    // Код, выполняемый при успешной загрузке и создании экземпляра WP_Image_Editor
} else {
    // Обработка ошибки
}

Изменение размера изображения


// Путь к файлу изображения
$image_path = '/path/to/image.jpg';
// Получение экземпляра WP_Image_Editor
$image_editor = wp_get_image_editor( $image_path );
// Проверка на ошибку
if ( ! is_wp_error( $image_editor ) ) {
    // Изменение размера изображения
    $resized_image = $image_editor->resize( 800, 600, true );
    // Проверка на ошибку при изменении размера
    if ( ! is_wp_error( $resized_image ) ) {
        // Код, выполняемый при успешном изменении размера изображения
    } else {
        // Обработка ошибки при изменении размера
    }
} else {
    // Обработка ошибки при загрузке и создании экземпляра WP_Image_Editor
}

Применение фильтров к изображению


// Путь к файлу изображения
$image_path = '/path/to/image.jpg';
// Получение экземпляра WP_Image_Editor
$image_editor = wp_get_image_editor( $image_path );
// Проверка на ошибку
if ( ! is_wp_error( $image_editor ) ) {
    // Применение фильтра к изображению
    $filtered_image = $image_editor->apply_filter( 'grayscale' );
    // Проверка на ошибку при применении фильтра
    if ( ! is_wp_error( $filtered_image ) ) {
        // Код, выполняемый при успешном применении фильтра к изображению
    } else {
        // Обработка ошибки при применении фильтра
    }
} else {
    // Обработка ошибки при загрузке и создании экземпляра WP_Image_Editor
}

Изменение формата изображения


// Путь к файлу изображения
$image_path = '/path/to/image.jpg';
// Получение экземпляра WP_Image_Editor
$image_editor = wp_get_image_editor( $image_path );
// Проверка на ошибку
if ( ! is_wp_error( $image_editor ) ) {
    // Изменение формата изображения
    $converted_image = $image_editor->convert( 'png' );
    // Проверка на ошибку при изменении формата
    if ( ! is_wp_error( $converted_image ) ) {
        // Код, выполняемый при успешном изменении формата изображения
    } else {
        // Обработка ошибки при изменении формата
    }
} else {
    // Обработка ошибки при загрузке и создании экземпляра WP_Image_Editor
}

Обрезка изображения


// Путь к файлу изображения
$image_path = '/path/to/image.jpg';
// Получение экземпляра WP_Image_Editor
$image_editor = wp_get_image_editor( $image_path );
// Проверка на ошибку
if ( ! is_wp_error( $image_editor ) ) {
    // Обрезка изображения
    $cropped_image = $image_editor->crop( 100, 100, 200, 200 );
    // Проверка на ошибку при обрезке
    if ( ! is_wp_error( $cropped_image ) ) {
        // Код, выполняемый при успешной обрезке изображения
    } else {
        // Обработка ошибки при обрезке
    }
} else {
    // Обработка ошибки при загрузке и создании экземпляра WP_Image_Editor
}

Вопросы и ответы

Как загрузить изображение в WP_Image_Editor?

Для загрузки изображения в WP_Image_Editor используется функция wp_get_image_editor(). Она принимает два параметра: $path — путь к файлу, который нужно загрузить, и $args — дополнительные аргументы для получения редактора изображений (необязательно).

Пример использования:


$image = wp_get_image_editor( 'path/to/image.jpg' );

Как получить объект WP_Image_Editor?

Функция wp_get_image_editor() возвращает объект WP_Image_Editor, который представляет собой редактор изображений WordPress. Этот объект можно использовать для различных операций с изображениями, таких как изменение размера, обрезка, поворот и т. д.

Пример использования:


$image = wp_get_image_editor( 'path/to/image.jpg' );
if ( ! is_wp_error( $image ) ) {
    // Работа с объектом WP_Image_Editor
}

Как обработать ошибку при получении WP_Image_Editor?

Если при получении объекта WP_Image_Editor произошла ошибка, функция wp_get_image_editor() вернет объект WP_Error. Чтобы обработать ошибку, можно использовать функцию is_wp_error() для проверки типа возвращаемого значения.

Пример использования:


$image = wp_get_image_editor( 'path/to/image.jpg' );
if ( is_wp_error( $image ) ) {
    $error_message = $image->get_error_message();
    // Обработка ошибки
}

Какие типы файлов поддерживает WP_Image_Editor?

WP_Image_Editor поддерживает различные типы файлов изображений, включая JPEG, PNG и GIF. Дополнительные типы файлов могут быть добавлены с помощью фильтра wp_image_editors.

Пример использования:


function custom_image_editors( $editors ) {
    $editors[] = 'My_Custom_Image_Editor';
    return $editors;
}
add_filter( 'wp_image_editors', 'custom_image_editors' );

Как изменить размер изображения с помощью WP_Image_Editor?

Для изменения размера изображения с помощью функции wp_get_image_editor() необходимо передать путь к файлу изображения в качестве обязательного параметра $path. Дополнительные аргументы можно передать в виде массива $args.

Пример кода:


$image = wp_get_image_editor( 'path/to/image.jpg' );
if ( ! is_wp_error( $image ) ) {
    $image->resize( 800, 600, true );
    $image->save( 'path/to/resized-image.jpg' );
}

Как изменить качество изображения с помощью WP_Image_Editor?

Для изменения качества изображения с помощью функции wp_get_image_editor() можно использовать метод set_quality() объекта WP_Image_Editor. Метод принимает значение качества от 1 до 100.

Пример кода:


$image = wp_get_image_editor( 'path/to/image.jpg' );
if ( ! is_wp_error( $image ) ) {
    $image->set_quality( 80 );
    $image->save( 'path/to/high-quality-image.jpg' );
}

Как изменить формат изображения с помощью WP_Image_Editor?

Для изменения формата изображения с помощью функции wp_get_image_editor() можно использовать метод set_output_format() объекта WP_Image_Editor. Метод принимает строку с расширением файла.

Пример кода:


$image = wp_get_image_editor( 'path/to/image.jpg' );
if ( ! is_wp_error( $image ) ) {
    $image->set_output_format( 'png' );
    $image->save( 'path/to/converted-image.png' );
}

Как сохранить измененное изображение с помощью WP_Image_Editor?

Для сохранения измененного изображения с помощью функции wp_get_image_editor() необходимо вызвать метод save() объекта WP_Image_Editor и передать путь к файлу, в который нужно сохранить изображение.

Пример кода:


$image = wp_get_image_editor( 'path/to/image.jpg' );
if ( ! is_wp_error( $image ) ) {
    $image->resize( 800, 600, true );
    $image->save( 'path/to/resized-image.jpg' );
}

Функция wp_get_image_editor() возвращает объект WP_Image_Editor, который позволяет работать с изображениями в WordPress. С помощью этой функции можно изменять размер, качество и формат изображений, а также сохранять изменения. Она является полезным инструментом для разработчиков WordPress, позволяющим легко и гибко управлять изображениями в своих проектах.

Связанные элементы

  • Функция wp_image_editor_supports(): проверяет поддержку редактора изображений для конкретного типа файла.
  • Хук wp_image_editors: позволяет добавить или изменить доступные редакторы изображений.
  • Хук wp_image_editor_before_change: вызывается перед изменением изображения редактором.
  • Класс WP_Image_Editor: абстрактный класс, представляющий редактор изображений.
  • Класс WP_Image_Editor_Imagick: класс-наследник WP_Image_Editor, использующий библиотеку Imagick для редактирования изображений.
  • Класс WP_Image_Editor_GD: класс-наследник WP_Image_Editor, использующий библиотеку GD для редактирования изображений.
Обсуждение