7

好吧,这似乎是一个愚蠢的问题,因为我们有这个

但是,到目前为止,我只能通过使用以下方法成功显示缩略图:

PhotoEntry photo = //somehow I get the instance
photo.getMediaThumbnails().get(0).getUrl()

我通过这种方法可以显示的最大照片是 300 像素左右[即photo.getMediaThumbnails().get(3)]。如何显示最大 400 像素甚至 800 像素的缩略图?或者我如何才能参考实际上可以帮助我显示这张照片的 google picasa 页面?

谢谢

4

3 回答 3

9

非常简单

 PhotoEntry photo = //somehow I get the instance
    photo.getMediaThumbnails().get(0).getUrl()

您可以使用这种方式获取 400/800 像素的照片。

您只需更改给出的结果 URL。更改 URL 的 s144/s400/s800 值

BLAH com/_BwderBVv7wg/XXXXXXXXX/AAAAAAAAAME/HdXja0HclK0/s72/DSC09176.JPG
BLAH com/_BwderBVv7wg/XXXXXXXXX/AAAAAAAAAME/HdXja0HclK0/s144/DSC09176.JPG
BLAH com/_BwderBVv7wg/XXXXXXXXX/AAAAAAAAAME/HdXja0HclK0/s288/DSC09176.JPG
BLAH com/_BwderBVv7wg/XXXXXXXXX/AAAAAAAAAME/HdXja0HclK0/s400/DSC09176.JPG
BLAH com/_BwderBVv7wg/XXXXXXXXX/AAAAAAAAAME/HdXja0HclK0/s800/DSC09176.JPG
于 2009-09-20T23:32:03.267 回答
6

以下是由 google picasa api 的社区成员回答的:

看一眼

http://code.google.com/apis/picasaweb/docs/2.0/reference.html#Parameters

它解释了如何控制 media:content 链接指向的图像大小,以及如何为 media:thumbnail 链接请求不同的缩略图大小。还列出了可用的有效大小值。但请注意,您只能从网站访问大小不超过 800 像素(宽度或高度,以较大者为准)的图像。

例如:

获取 /feed/api/user//albumid/? 种类=照片&imgmax=800&thumbsize=512,400,160c

将在 media:content 链接中为您提供 800px 版本的链接,在前两个 media:thumbnail 元素中提供未裁剪的 512px 和 400px 版本的链接,在第三个缩略图元素中提供方形裁剪的 160x160 缩略图。

干杯,德特莱夫

于 2009-09-02T06:59:01.580 回答
5

如果您使用的是 Picasa Java API,并且需要在上传后获取图片 URL,请尝试使用以下代码

    try {
        File photoFile = new File(getFileName());
        service = new PicasawebService(applicationName);
        MediaFileSource photoMedia = new MediaFileSource(photoFile, "image/jpg");
        URL albumPostUrl = new URL(String.format("http://picasaweb.google.com/data/feed/api/user/%1$s/albumid/%2$s", getUserName(), getAlbumId()));
        PhotoEntry returnedPhoto = service.insert(albumPostUrl, PhotoEntry.class, photoMedia);

        String href = returnedPhoto.getHtmlLink().getHref();

        if (returnedPhoto.getMediaContents().size() > 0) {
            // !!!!!!!!!!!!!!!This is exactly JPEG URL
            href = returnedPhoto.getMediaContents().get(0).getUrl();
        }
        logger.info(String.format("Image published: <%s>", href));
        return href;
    } catch (AuthenticationException e) {
        logger.error(e.getMessage(), e);
        e.printStackTrace();
    } catch (MalformedURLException e) {
        logger.error(e.getMessage(), e);
        e.printStackTrace();
    } catch (IOException e) {
        logger.error(e.getMessage(), e);
        e.printStackTrace();
    } catch (ServiceException e) {
        logger.error(e.getMessage(), e);
        e.printStackTrace();
    }
于 2012-02-21T15:04:05.797 回答