Bing Image Search API按格式过滤

时间:2015-07-21 11:23:15

标签: image azure bing

我正在使用此查询https://api.datamarket.azure.com/Bing/Search/v1/Image?Query=delhaize%20logo连接Bing Image Search API并找到所需的图片。这非常好,但我喜欢Bing只返回jpg和png图像。我无法在任何地方找到如何使用Bing过滤图像格式。

我找到了有关图片过滤器的this页面,但没有在任何地方提及图片格式。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

不,没有方法按图像格式进行过滤。你可以这样做(php):

$word = 'monitor';
$extension = 'jpg';

$request = 'https://api.datamarket.azure.com/Bing/Search/v1/Image?$format=json&Query=%27'.urlencode($word).'%27&Adult=%27Strict%27&ImageFilters=%27Size%3AMedium%2BAspect%3AWide%2BColor%3AColor%2BStyle%3APhoto%27';
$process = curl_init($request);
curl_setopt($process, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($process, CURLOPT_USERPWD,  "$accountKey:$accountKey");
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($process);
$json = json_decode($response, true);

if(is_array($json['d']['results'])) {
    foreach($json['d']['results'] as $image) {
        if(pathinfo($image['MediaUrl'], PATHINFO_EXTENSION) == $extension) {
            # update values
            $urls[] = $image['MediaUrl'];
        }
    }
}

print_r($urls);

这将找到与“monitor”字符串匹配的图像,然后您只需在php中过滤它们。