WordPress — генерировать миниатюры в php, отправляя сообщения в API Azure Computer Vision

Я хочу использовать Azure Computer Vision API создавать эскизы для моего сайта WordPress. Я пытаюсь заставить его работать в php с wp_remote_post, но я не знаю, как разобрать параметры? Возвращает миниатюру в действительно плохом качестве и по умолчанию 500x500px. Любые идеи о том, как решить эту проблему?

function get_thumbnail($URL)   //* * * * Azure Computer Vision API - v1.0 * * * *
{
$posturl='https://api.projectoxford.ai/vision/v1.0/generateThumbnail';

$request = wp_remote_post($posturl, array(
'headers' => array(
'Content-Type' => 'application/json',
'Ocp-Apim-Subscription-Key' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'),
'body' => array('url' => $URL)
));

if ( is_wp_error( $request ) )
{
$error_message = $request->get_error_message();
return "Something went wrong: $error_message";
} else
{
return $request['body'];
}
}

РЕДАКТИРОВАТЬ 1

Спасибо @Gary ваше право! Теперь обрезка верна, но у меня огромная проблема с качеством! Я использую пробную версию, но не вижу никакой информации от Azure о снижении качества большого пальца для пробных пользователей. Они утверждают, что поставляют высококачественные миниатюры, но если это стандарт, это абсолютно бесполезно.
Должно быть, я что-то упустил из виду?

Конечно, Гэри, если я не получу правильного ответа на мой качественный вопрос, я закрою ветку с вашим ответом как правильный.

Создан большой палецИсходная картинка

1

Решение

По описанию Получить эскиз, width,height а также smartCropping должны быть установлены как параметры запроса, которые должны объединяться в URL.

Однако второй аргумент в wp_remote_post() не принимайте URL parameters и ничего не будет делать на них. Таким образом, вам нужно объединить URL-адрес, прежде чем установить в wp_remote_post(),

Вы можете попробовать использовать add_query_arg () сначала объединить ваш URL,

$posturl='https://api.projectoxford.ai/vision/v1.0/generateThumbnail';
$posturl=add_query_arg( array(
'width' => 600,
'height' => 400,
'smartCropping' => true
), $posturl);
2

Другие решения

Других решений пока нет …