在 php 中生成缩略图,发布到 Azure Computer Vision API

Generate thumbnail in php, posting to Azure Computer Vision API

我想使用 Azure Computer Vision API 为我的 Wordpress 网站生成缩略图。我试图让它在 php 和 wp_remote_post 中工作,但我不知道如何解析参数?它 returns 质量非常差的缩略图,默认为 500x500 像素。关于如何解决这个问题的任何想法?

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 中看到有关降低试用用户的拇指质量的信息。他们声称提供高质量的缩略图,但如果那是标准,那就完全没用了。 我猜我一定是忽略了什么?

当然是加里,如果我的质量问题没有得到正确答案,我会关闭线程,你的答案是正确的。

根据Get Thumbnail的描述,widthheightsmartCropping应该设置为请求参数,并在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);