Создайте размер изображения с помощью черно-белого изображения в WordPress при регенерации эскизов

#php #wordpress #image

#php #wordpress #изображение

Вопрос:

Ищу способ регенерировать все мои избранные изображения и что это создаст новый размер изображения в черно-белом формате,

Я знаю, что это можно сделать в CSS, но мне нужно перенести это изображение с помощью REST в приложение JS canvas, и я не могу использовать CSS,

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

 add_action('after_setup_theme','themename_bw_size');
function themename_bw_size() {
    add_image_size('themename-bw-image', 100, 100, true);
}

add_filter('wp_generate_attachment_metadata','themename_bw_filter');
function themename_bw_filter($meta) {
    $file = wp_upload_dir();
    $file = trailingslashit($file['path']).$meta['sizes']['themename-bw-image']['file'];
    list($orig_w, $orig_h, $orig_type) = @getimagesize($file);
    $image = wp_load_image($file);
    imagefilter($image, IMG_FILTER_GRAYSCALE);
    switch ($orig_type) {
        case IMAGETYPE_GIF:
            imagegif( $image, $file );
            break;
        case IMAGETYPE_PNG:
            imagepng( $image, $file );
            break;
        case IMAGETYPE_JPEG:
            imagejpeg( $image, $file );
            break;
    }
    return $meta;
}
  

Спасибо!

Комментарии:

1. Привет, Алон, добро пожаловать в SO. Что именно не работает ?

2. Куда вы добавили этот код? Кроме того, есть ли причина, по которой вы используете вызывающее add_image_size это after_setup_theme действие?

3. Код действительно создает новый размер изображения, что я ищу, так это получить код для создания нового размера черно-белого изображения с фильтром оттенков серого при регенерации эскизов. У меня на сайте более 600 изображений, из которых я хотел бы создать черно-белое изображение,