首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让phpFlickr返回原始图像?

如何让phpFlickr返回原始图像?
EN

Stack Overflow用户
提问于 2011-05-12 17:15:35
回答 2查看 2.7K关注 0票数 3

这段代码工作得很完美:

代码语言:javascript
复制
$f = new phpFlickr(FLICKR_API_KEY, FLICKR_API_SECRET);
$f->setToken(FLICKR_AUTH_TOKEN);
// Next line is just WordPress providing the photoset ID.
$mySetID = get_post_meta($post->ID, 'Flickr set ID', true); 
$mySet = $f->photosets_getPhotos($mySetID, NULL, NULL);
foreach ($mySet['photoset']['photo'] as $photo) {
    echo '<div><img src="'. $f->buildPhotoURL($photo, 'large') .'" alt="" /></div>';
}

...until buildPhotoURL被告知要获取“原始”大小,此时返回的URL类似于"不是的。“,这显然是无效的。

虽然我通过搜索发现的一切似乎都同意这样做需要一些“原始秘密”和“原始格式”值,而这些值在Flickr自己的文档中几乎没有提到,而phpFlickr在试着使用它们看来确实如此,但在默认情况下它们显然没有被获取,而且我还没有看到有人为如何实际提供它们编写了代码。我试着在回显行的前面调用$f->曾经产生过有效的反应_getInfo(),传递各种东西没有任何效果,我开始觉得我遗漏了一些大家认为很明显的东西,尽管没有人(我可以找到)在phpFlickr论坛上反复提出有关它的问题。

注意:

  • 这个的一个专业帐户。
  • 我们正在正确地进行身份验证(这些是私有集,对于所有其他大小都很好)。
  • 访问Flickr隐私设置中的原始大小设置为“任何人”。

想法?

EN

回答 2

Stack Overflow用户

发布于 2013-01-13 01:10:11

我知道现在有点晚了,我相信你已经解决了这个问题,但我想和大家分享一个相关的答案,因为我只是花了一些时间在一个类似的问题上挣扎,正如你所说的,关于这个问题的答案在任何地方都找不到。

要从集合中获取显示原始大小图像所需的信息,请使用以下url:

代码语言:javascript
复制
http://api.flickr.com/services/rest/?&method=flickr.photosets.getPhotos&api_key=YOURAPIKEYNUMBER&photoset_id=YOURSETIDNUMBER&per_page=100&sort=date-posted-desc&extras=original_format&format=json&jsoncallback=?

当然,所有变量都可以根据您的需要定制,但这只是一个示例,它显示了一组按日期排序的前100幅图像,其中附有原始图像格式信息,包括重要的“原始”秘密代码。

要显示您可以使用的javascript图像

代码语言:javascript
复制
'http://farm' + item.farm + '.static.flickr.com/' + item.server + '/' + item.id + '_' + item.originalsecret + '_' + 'o' + '.' + item.originalformat;

主要的症结是"&extras=original_format“,因为它为您提供了原始秘密和原始格式,您需要从flickr调用原始大小的图像。当我遇到原来的尺寸问题时,我正在使用SuperSized背景插件。

票数 4
EN

Stack Overflow用户

发布于 2012-01-05 23:41:19

photosets_getPhotos()方法不返回$photo的完整数组。它返回一些关于$photo的基本信息,但不返回buildPhotoURL()所需的$photo['originalformat']

您可以告诉photosets_getPhotos()返回原始格式作为可选的额外内容。这给了buildPhotoURL()它所需要的一切。

示例:

代码语言:javascript
复制
$mySet = $f->photosets_getPhotos($mySetID, 'original_format', NULL);
foreach ($mySet['photoset']['photo'] as $photo) {
    echo '<div><img src="'. $f->buildPhotoURL($photo, 'original') .'" alt="" /></div>';
}

更好的是,您可以让photosets_getPhotos()返回原始照片本身的网址。

示例:

代码语言:javascript
复制
$mySet = $f->photosets_getPhotos($mySetID, 'url_o', NULL);
foreach ($mySet['photoset']['photo'] as $photo) {
    echo '<div><img src="'. $photo['url_o'] .'" alt="" /></div>';
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5981814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档