- 浏览: 11240 次
- 性别:
- 来自: 安徽
最近访客 更多访客>>
最新评论
-
lwx123:
PicasawebService myService = ne ...
java取picasa web相册 -
shjie5246:
不需要配置什么,只要把用到的第三方包放到所在的工程下就可以了
java取picasa web相册 -
ankang2577:
我是一个java开发新手,楼主能给出如何在eclipse中配置 ...
java取picasa web相册
PicasaTestAction:
PhotoInfo:
import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Hashtable; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.google.gdata.client.photos.PicasawebService; import com.google.gdata.data.Link; import com.google.gdata.data.photos.AlbumEntry; import com.google.gdata.data.photos.AlbumFeed; import com.google.gdata.data.photos.GphotoEntry; import com.google.gdata.data.photos.PhotoEntry; import com.google.gdata.data.photos.UserFeed; import com.google.gdata.util.AuthenticationException; import com.google.gdata.util.ServiceException; import com.opensymphony.xwork2.ActionSupport; import com.picasa.storage.PhotoInfo; public class PicasaTestAction extends ActionSupport { private static final long serialVersionUID = -3709074572710209488L; private static final String API_PREFIX = "http://picasaweb.google.com/data/feed/api/user/"; private static final String RESULT = "RESULT"; private static final String FAIL = "FAIL"; /** * 取picasa相册 */ public String execute() throws ServletException, IOException { HttpServletRequest request = ServletActionContext.getRequest(); String emailAddress = request.getParameter("emailAddress"); String passWord = request.getParameter("password"); String realPath = request.getRealPath("/image"); if (null == emailAddress || null == passWord) { return FAIL; } Map<String, List<PhotoInfo>> albumPhotos = generatePhoto(emailAddress, passWord, realPath); request.setAttribute("albumPhotos", albumPhotos); return RESULT; } /** * 返回所有的相册和相片的信息 * @param emailAddress * @param passWord * @param realPath * @return * @throws IOException */ public Map<String, List<PhotoInfo>> generatePhoto(String emailAddress, String passWord, String realPath) throws IOException { try { PicasawebService picasaService = buildPicasaWebService("Picasa", emailAddress, passWord); List<AlbumEntry> albums = getAlbums(picasaService, emailAddress); Map<String, List<PhotoInfo>> albumPhotos = new Hashtable<String, List<PhotoInfo>>(); for (AlbumEntry albumEntry : albums) //相册 { List<PhotoEntry> photoEntrys = getPhotos(picasaService, albumEntry); if (photoEntrys.size() > 0) { List<PhotoInfo> photos = new ArrayList<PhotoInfo>(); for (PhotoEntry photoEntry : photoEntrys) //相片 { //原图 PhotoInfo photoInfo = new PhotoInfo(); String originalName = writeImage(photoEntry .getMediaContents().get(0).getUrl(), realPath, true); photoInfo.setAlbumName(albumEntry.getTitle().getPlainText()); photoInfo.setPhotoName(originalName); photoInfo.setPhotoDesc(photoEntry.getDescription().getPlainText()); photos.add(photoInfo); } albumPhotos.put(albumEntry.getTitle().getPlainText(), photos); } } return albumPhotos; } catch (ServiceException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return new Hashtable<String, List<PhotoInfo>>(); } /** * 取得相册 * @param picasaService * @param username * @return * @throws IOException * @throws ServiceException */ @SuppressWarnings("unchecked") public List<AlbumEntry> getAlbums(PicasawebService picasaService, String username) throws IOException, ServiceException { String albumUrl = API_PREFIX + username; UserFeed userFeed = picasaService.getFeed(new URL(albumUrl), UserFeed.class); List<GphotoEntry> entries = userFeed.getEntries(); List<AlbumEntry> albums = new ArrayList<AlbumEntry>(); for (GphotoEntry entry : entries) { GphotoEntry adapted = entry.getAdaptedEntry(); if (adapted instanceof AlbumEntry) { albums.add((AlbumEntry) adapted); } } return albums; } /** * 取得相片 * @param picasaService * @param album * @return * @throws IOException * @throws ServiceException */ @SuppressWarnings("unchecked") public List<PhotoEntry> getPhotos(PicasawebService picasaService, AlbumEntry album) throws IOException, ServiceException { String feedHref = getLinkByRel(album.getLinks(), Link.Rel.FEED); AlbumFeed albumFeed = picasaService.getFeed(new URL(feedHref), AlbumFeed.class); List<GphotoEntry> entries = albumFeed.getEntries(); List<PhotoEntry> photos = new ArrayList<PhotoEntry>(); for (GphotoEntry entry : entries) { GphotoEntry adapted = entry.getAdaptedEntry(); if (adapted instanceof PhotoEntry) { photos.add((PhotoEntry) adapted); } } return photos; } /** * 取得相册的连接 * @param links * @param relValue * @return */ public String getLinkByRel(List<Link> links, String relValue) { String linkStr = null; for (Link link : links) { if (relValue.equals(link.getRel())) { linkStr = link.getHref(); } } return linkStr; } /** * 把相片保存到本地 * @param urlAddress * @param realPath * @param isThumbnail * @return */ public String writeImage(String urlAddress, String realPath, boolean isThumbnail) { BufferedInputStream bis = null; OutputStream bos = null; String fileName = null; try { URL url = new URL(urlAddress); bis = new BufferedInputStream(url.openStream()); fileName = getFileName(urlAddress); byte[] bytes = new byte[1024]; File file = new File(realPath + "\\" + fileName); if (!file.isFile()) //如果已经存在直接返回该文件名 { bos = new FileOutputStream(file); int len; while ((len = bis.read(bytes)) > 0) { bos.write(bytes, 0, len); } } return fileName; } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (null != bos) { bos.flush(); bos.close(); } if (null != bis) { bis.close(); } } catch (IOException e) { e.printStackTrace(); } } return null; } /** * 取得相片的文件名 * @param urlAddress * @return */ public String getFileName(String urlAddress) { int lastURLSeparater = urlAddress.lastIndexOf("/"); return urlAddress.substring(lastURLSeparater + 1); } /** * 通过appName,emailAddress,passWord返回PicasawebService对象 * @param appName * @param emailAddress * @param password * @return * @throws AuthenticationException */ public PicasawebService buildPicasaWebService(String appName, String emailAddress, String passWord) throws AuthenticationException { PicasawebService picasaService = new PicasawebService(appName); picasaService.setUserCredentials(emailAddress, passWord); return picasaService; } }
PhotoInfo:
public class PhotoInfo { /* * 相片所属的相册 */ private String albumName; /* * 相片的名称 */ private String photoName; /* * 相片的描述 */ private String photoDesc; /* * 相片的个数 */ private String photoNumber; /** * getter方法 */ public String getAlbumName() { return albumName; } /** * setter方法 */ public void setAlbumName(String albumName) { this.albumName = albumName; } /** * getter方法 */ public String getPhotoName() { return photoName; } /** * setter方法 */ public void setPhotoName(String photoName) { this.photoName = photoName; } /** * getter方法 */ public String getPhotoDesc() { return photoDesc; } /** * setter方法 */ public void setPhotoDesc(String photoDesc) { this.photoDesc = photoDesc; } /** * getter方法 */ public String getPhotoNumber() { return photoNumber; } /** * setter方法 */ public void setPhotoNumber(String photoNumber) { this.photoNumber = photoNumber; } }
评论
3 楼
lwx123
2011-03-23
PicasawebService myService = new PicasawebService("exampleCo-exampleApp-1");
myService.setUserCredentials("liz@gmail.com", "mypassword");
怎么在构造这里的时候报异常咧!
03-23 05:38:04.405: ERROR/dalvikvm(276): Could not find class 'com.google.gdata.data.media.MediaSource', referenced from method com.google.gdata.wireformats.input.media.MediaParser.parse
myService.setUserCredentials("liz@gmail.com", "mypassword");
怎么在构造这里的时候报异常咧!
03-23 05:38:04.405: ERROR/dalvikvm(276): Could not find class 'com.google.gdata.data.media.MediaSource', referenced from method com.google.gdata.wireformats.input.media.MediaParser.parse
2 楼
shjie5246
2011-01-05
不需要配置什么,只要把用到的第三方包放到所在的工程下就可以了
1 楼
ankang2577
2010-12-13
我是一个java开发新手,楼主能给出如何在eclipse中配置Google Picasa API的流程吗
发表评论
-
eclipse常用快捷键
2010-06-30 23:32 8151.Ctrl+Q 定位到最后编辑的地方 2.Ctrl+M 最 ... -
java模式学习之抽象工厂模式
2010-06-08 22:47 1213抽象工厂模式 抽象 ... -
java模式学习之工厂方法模式
2010-05-25 00:08 728工厂方法模式 工厂 ... -
java模式学习之简单工厂模式
2010-05-23 18:19 856简单工厂模式 简单工 ... -
java设计原则
2010-05-22 16:53 763开-闭原则(ocp) 开闭原 ... -
java模式学习之策略模式
2010-05-22 15:53 965学习java软件开发已有二年了,逐渐的从面向过程到面向对象编程 ...
相关推荐
Picasa是一款由Google开发的图像管理和编辑软件,它的全称是“Picasa Web Albums”。这款工具在图像管理领域非常受欢迎,因其简洁易用的界面和强大的功能而备受好评。Picasa不仅可以帮助用户在本地计算机上组织和...
Google PicasaWeb(网络相册),很不错的
最新最好用的picasa管理相册工具! picasa3相册-setup.exe
Java Picasaweb UI是一个基于Java Swing开发的开源项目,其设计目的是为了提供对Google的Picasa网络相册服务的全面访问接口。这个UI工具允许用户与Picasaweb相册进行交互,执行多种操作,包括但不限于: 1. **连接...
标题中的“use pwa to access Google picasaweb”指的是使用渐进式Web应用程序(Progressive Web App,简称PWA)来访问Google的Picasa网络相册服务。Picasa是Google提供的一款在线照片管理和分享应用,而PWA则是一种...
"Google Picasa相册辅助工具"是针对这款软件的一个补充工具,专为处理Picasa相册中的图片链接,尤其是帮助用户进行批量处理[IMG]标签的转换。 在网页上展示图片时,[IMG]标签是一种常见的HTML语法,用于嵌入图像。...
picasaweb-current-setup.exe
每次打开 Picasa 时,它都会自动查找所有图片(甚至是那些您已经遗忘的图片),并将它们按日期顺序放在可见的相册中,同时以您易于识别的名称命名文件夹。您可以通过拖放操作来排列相册,还可以添加标签来创建新组。...
6. **图片分享**:Picasa支持直接上传图片到Google Photos(原Google Picasa Web Albums),让用户可以在线分享照片给朋友和家人,或设置公开分享链接。 7. **视频播放**:除了图片管理,Picasa还能够识别并播放...
picasa网络相册下载器 什么是 Picasa 网络相册下载器? 其目的是能够从 picasa 下载整个专辑。 它是 google for windows 的 Picasa 2.0 或 mac 新发布的 iPhoto 的替代品。
很强大的功能,如果你的...每次打开 Picasa 时,它都会自动查找所有图片(甚至是那些您已经遗忘的图片),并将它们按日期顺序放在可见的相册中,同时以您易于识别的名称命名文件夹.您可以通过拖放操 作来排列相册,还* Fac
是一款步错的这些好片安慰她·奇文共赏企业和统计2
PicasaWeb Mobile,这个基于J2ME(Java 2 Micro Edition)技术的应用程序,为移动设备用户提供了在掌上欣赏Picasaweb照片的便利。Picasaweb,作为Google旗下的一款在线照片管理和分享服务,让用户可以轻松上传、组织...
Picasa(谷歌相册管理软件)是一个可在计算机上查看、整理、修改和共享数码照片的软件,它会让所有这些工作变得简单而有趣。Picasa 不会未经您的允许就删除照片或将照片放到网络上。 - 自动将你的相片从你的数码相机...
同时,Picasa Web Albums还支持创建网络相册,让照片分享跨越地域限制。 然而,随着技术的发展和谷歌战略的调整,Picasa于2016年正式停止服务。谷歌推荐用户转向更加现代化的Google Photos,后者提供了无限的云端...
标题“Simple Picasaweb Face-开源”指出,这是一个基于PHP的开源项目,旨在帮助用户在其个人网站上展示来自Picasaweb的相册和图片。Picasaweb是Google提供的一项服务,允许用户上传、管理和分享照片。由于这个项目...
6. **分享与打印**:Picasa支持将照片直接上传到Google Photos(以前的Picasa Web Albums),并与朋友和家人共享。此外,用户还可以直接从软件内打印照片,或者制作成相册、贺卡等。 7. **面部识别**:软件内置的...