API:按方向获取Flickr照片



我只想从Flickr上获得风景照片,但我看不到任何参数可以让我做到这一点。有人知道有没有办法吗?

flickr.photos.search功能的响应中,您可以指定许多称为extras的可选参数。对于您指定的每个额外URL(格式为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大小照片的URL,您将具有height_qwidth_q属性。如果width_q大于height_q,则方向为横向。如果是相反的方向,照片的方向是肖像,否则它是一个完美的正方形。

在Javascript中,您可以编写这样的函数:

function determinePhotoOrientation(width, height) {
    if (width > height) {
        return 'landscape';
    } else if (width < height) {
        return 'portrait';
    }
    return 'square';
}

如果你使用的是另一种语言,你可以用这种语言制作一个类似的函数来帮助你确定方向。

我还想得到只有"纵向"或"横向"的结果。我本来打算使用@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
)

对我来说,当使用"横向"作为方向时,这也很有效。

最新更新