我只想从Flickr获取风景照片,但我没有看到任何可以让我这样做的参数。有没有人知道是否有办法?
答案 0 :(得分:4)
在flickr.photos.search
功能的响应中,您可以指定一些可选参数,称为extras
。对于您指定的每个网址(格式为url_s,url_q
...),您将获得以下信息。
示例JSON响应
{
...
"photos": {
"page": 1,
"pages": "478",
"perpage": 2,
"total": "4775",
"photo": [
{
...
"longitude": 0, "accuracy": 0, "context": 0, "media": "photo",
"media_status": "ready",
"url_q": "https:\/\/farm4.staticflickr.com\/0000\/000_000_q.jpg",
"height_q": "150",
"width_q": "150",
...
},
{
...
"longitude": 0, "accuracy": 0, "context": 0, "media": "photo",
"media_status": "ready",
"url_q": "https:\/\/farm4.staticflickr.com\/0000\/000_111_q.jpg",
"height_q": "150",
"width_q": "150",
...
},
] },
"stat": "ok"
};
如果您想要Q尺寸照片的网址,您将拥有height_q
和width_q
属性。如果width_q
大于height_q
,则方向为横向。如果相反,照片的方向是人像,否则它是一个完美的正方形。
在Javascript中,您可以编写如下函数:
function determinePhotoOrientation(width, height) {
if (width > height) {
return 'landscape';
} else if (width < height) {
return 'portrait';
}
return 'square';
}
如果您使用的是其他语言,则可以使用该语言制作类似的功能,以帮助您确定方向。
答案 1 :(得分:0)
我还想获得仅是“人像”或“风景”的结果。我打算使用@Dodzi所描述的技术(尽管不在q图像上),但是由于我的代码结构如何,我发现了flickr.photos.search端点似乎是隐藏的参数。
对我来说,将这些参数传递给端点只会导致返回与方向匹配的照片:
Array
(
[per_page] => 100
[extras] => url_sq,url_t,url_s,url_q,url_m,url_n,url_z,url_c,url_l,url_k,url_h,url_o,path_alias,owner_name,license
[tag_mode] => all
[tags] =>
[license] => 1,2,3,4,5
[sort] => interestingness-desc
[orientation] => portrait
)
当我使用“横向”作为方向时,这对我也有效。