Я пытаюсь сгенерировать б&w большой палец в WordPres. Проблема в том, что загружаемые файлы имеют прозрачность. Это разные логотипы от партнеров, которые мне нужны в оттенках серого, чтобы соответствовать дизайну шаблона.
Пока я получил это:
// add thumb size
add_image_size('pvz-partnerbw-image', 9999, 64, false);
// Generate BW thumbnail
add_filter('wp_generate_attachment_metadata','pvz_bw_filter');
function pvz_bw_filter($meta) {
$file = wp_upload_dir();
$file = trailingslashit($file['path']).$meta['sizes']['pvz-partnerbw-image']['file'];
list($orig_w, $orig_h, $orig_type) = @getimagesize($file);
$image = wp_load_image($file);
imagefilter($image, IMG_FILTER_GRAYSCALE);
imagesavealpha($image,true);
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;
}
Это почти работает, но проблема в том, что на краях между обложкой и прозрачным фоном остаются цвета. Так что я получаю б&w логотип с 1px красным (или другим цветом). Любой получил лучшее решение для этого — тот, который не включает в себя Photoshoping изображения;). Заранее спасибо!
Для начала, wp_load_image устарела. Вы должны использовать wp_image_editor. Я предлагаю переписать вашу функцию с помощью wp_image_editor, чтобы увидеть, не создает ли она те же проблемы при применении фильтра GRAYSCALE.
Других решений пока нет …