如何在Google自定义搜索中指定图像类型

9
我正在使用Google自定义搜索获取符合某些条件的图片。我正在从Java应用程序中发起HTTP Get请求来调用Google自定义搜索API(请注意,我使用JavaScript或CSS,并且我开发网站)。
我能够获取到图片并且程序正在运行。该应用程序会带来具有Jpg扩展名的图片。
我想要:
  • 只获取具有png扩展名具有透明背景的图片。
我尝试在请求URL的查询字符串中指定filetype,如下所示:
https://www.googleapis.com/customsearch/v1?q=cars&filetype=png&cx=[myinformatino]&searchType=image&rights=cc_publicdomain&num=10&key=[myKey]

但是结果仍然是jpg格式的,而且Google自定义搜索只返回了一两个结果。
注:
- 我已经从控制面板配置了Google自定义搜索以搜索所有网页,没有限制搜索某些网站。 - 我还从控制面板配置了Google自定义搜索以启用图像搜索,方法如下:

enter image description here

  • 我还将搜索结果配置为图像结果(从“搜索功能” ->“高级”页面),如下图所示

enter image description here

我还发现了谷歌文档中的代码示例,它限制了图片的类型,但似乎是使用javascript(而不是java),对我来说完全不合适。 更新 我找到了搜索png文件的解决方案,方法是在查询本身中提供filetype:png,而不是将此值指定为Google自定义搜索的查询字符串。结果是合理且可接受的。 更新 我还尝试了tbs查询字符串参数,它用于Google图像搜索,如果我们想获取透明图像,则会按以下方式工作。
?tbs=ic:trans&

这仅适用于Google图像搜索,但在Google自定义搜索中无效。即使我在Google自定义搜索中使用了hq参数,它只是将参数添加到URL中以添加tbs参数。

但我仍然无法强制Google自定义搜索仅显示具有透明背景的图像。

更新

如果有一种方法可以使用Bing搜索API实现相同的目标(获取具有透明背景的图像),我也会接受答案。 我还尝试了Bing搜索API,它也起作用,但出现了同样的问题,没有办法指定我需要具有透明背景的图像。

更新 根据this discussion,在Google已弃用的搜索API中存在未记录的参数,可以带来透明图像,如下所示:

imgc=trans

这适用于旧的弃用的谷歌搜索API,但不适用于新的API,也不适用于BING API。
更新:对于Bing Search API,我尝试添加此查询参数,它在BING图像搜索中指定透明背景(在网站上而非API中)到URL。
qft=+filterui:photo-transparent

尽管这对普通的BING搜索有效,但它并未适用于BING搜索API。
3个回答

2

我查看了图片搜索的URL,发现参数是tbs。

例如:

透明图片: ...&tbs=ic:trans&....
灰色图片: ...&tbs=ic:gray&...
指定颜色(例如:橙色):...&tbs=ic:specific,isc:orange&...

M.


我之前尝试过这个方法,对于谷歌图片搜索是有效的。但是对于谷歌自定义搜索却无效,非常抱歉因为我在问题中没有提到这一点。 - Hakan Fıstık
我更新了我的问题,包括关于这个功能的说明。无论如何,感谢您抽出时间。 - Hakan Fıstık

1
针对Bing的问题,API尚未实现此功能。

你有这方面的参考资料吗? - Hakan Fıstık
1
嗯,很难找到关于不存在的东西的参考资料;) 官方文档没有提到透明的搜索请求标准 https://onedrive.live.com/view.aspx?resid=9C9479871FBFA822!109&app=Word&authkey=!ACvyZ_MNtngQyCU - danvy
现在可以仅搜索透明图片。请参考以下链接:https://learn.microsoft.com/zh-cn/azure/cognitive-services/bing-image-search/concepts/bing-image-search-get-images#filter-images - n00b

1
将“透明”放在查询字符串的末尾如何?这对我起作用:&q="<品牌>+标志+透明",对于文件类型&filetype=png

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接