`
shjie5246
  • 浏览: 10794 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
最近访客 更多访客>>
社区版块
存档分类
最新评论

通过js取picasa网络相册

    博客分类:
  • web
阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>	
		<title>外部取picasa网络相册</title>
		<script>
			var XMLHttpReq;
			var albums = []; //所有的相册
			var userName = ""; //picasa用户名
			var img_small = 144; //缩略图尺寸,其他的有效尺寸: 32, 48, 64, 72, 144, 160;
			var img_max = 1024; //每张图片的尺寸,其他的有效尺寸: 200, 288, 320, 400, 512, 576, 640, 720, 800
			var max_results = 20; //一页显示的相片个数
			var navigae_page = 1; //url参数表示当前从第几个查询
			var current_page = ""; //当前页
			/**
			 * 创建AJAX请求
			 * @return 请求对象
			 */
			function createXMLHttpRequest() 
			{
			   if(window.XMLHttpRequest)
			   {	  
				 XMLHttpReq = new XMLHttpRequest();
			   }
			   else if (window.ActiveXObject)
			   {
				 try
				 {
					XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
				 }
				 catch(e)
				 {
				   try
				   {
					 XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
				   }
				   catch(e)
				   {
				   }
				 }
			   }
			}

			function createDomDocument(obj)
			{
				var xmlData;
				
				try
				{
					xmlData = createObject("Msxml2.DOMDocument");
				}
				catch(e)
				{
					xmlData = createObject("Msxml.DOMDocument");
				}
				
				xmlData.async = false;

				xmlData.loadXML(obj);
				
				return xmlData;
			}

			function createObject(strName)
			{
				var stm;
				try
				{
					stm = new ActiveXObject(strName);
				}
				catch(e)
				{
					var strMsg = "您的计算机没有安装" + strName + ",或者您的浏览器为该网页没有设置本地访问权限";
					throw strMsg;
				}
				return stm;
			}

			function load()
			{
				userName = "blair";
				var url = 'http://picasaweb.google.com/data/feed/api/user/'+ userName +'?category=album&max-results=30&alt=json';
				createXMLHttpRequest();
				XMLHttpReq.open("get",url,true);

				XMLHttpReq.onreadystatechange = function()
				{
					  if(XMLHttpReq.readyState==4)
					   {
						 if(XMLHttpReq.status == 200)
						 {
							//document.write(XMLHttpReq.responseText);
							//parseAlbumFeed(XMLHttpReq.responseText);
							if(XMLHttpReq.responseText == '')
							{
								alert('没有相册!');
							}
							parseAlbumJson(XMLHttpReq.responseText);
						 }
					   }

				}
				XMLHttpReq.send(null);
			}

			function parseAlbumFeed(obj) 
			{
			  var doc = createDomDocument(obj);

			  var entryElements = doc.getElementsByTagName('entry');
			  //具体处理每个Album的信息
			  for (var i = 0; i < entryElements.length; i++) 
			  {
				var entry = entryElements[i];

				var album=new Album();

				//相册标题
				album.title=entry.getElementsByTagName('title')[0].text;

				//相册描述
				album.summary=entry.getElementsByTagName('summary')[0].text;

				//相册的访问权限
				album.access=entry.getElementsByTagName('gphoto:access')[0].text;

				//相册的缩略图
				var thumbnail=entry.getElementsByTagName('media:thumbnail')[0];
				album.thumbnail=new Thumbnail(thumbnail.getAttribute('url'));
				albums.push(album);

			  }
			  for(var i=0; i<albums.length; i++)
			  {
				  var album = albums[i];
				  alert(album.title + ", " + album.summary + ", " + album.access + ", " + album.thumbnail.url);
			  }
			}
			
			function parseAlbumJson(obj)
			{
				var func = new Function("return "+obj);
				var json = func();
				var album=new Album();
				var str = "";
				for(var i=0; i<json.feed.entry.length; i++)
				{	
					 album.title =json.feed.entry[i].title.$t;
					 album.desc = json.feed.entry[i].summary.$t;
					 album.access = json.feed.entry[i].gphoto$access.$t
					 album.date = json.feed.entry[i].gphoto$timestamp.$t;
					 var c = new Date(); 
					 c.setTime(album.date);
					 album.date = c.toLocaleDateString() + " " +c.toLocaleTimeString();
					 album.num = json.feed.entry[i].gphoto$numphotos.$t;
					 album.src = json.feed.entry[i].media$group.media$thumbnail[0].url;
					 album.id = json.feed.entry[i].gphoto$id.$t;
					 albums.push(album);
					 str += "<a href=javascript:void(0) onclick=getAlbum('" + album.id + "',1"  + ")><img src=" + album.src + "?imgmax=" + img_small + "&crop=1 border=0 style='margin:20px;'/></a>";
					 //document.write(album.id + " ");
					 //alert('相册标题: '+album.title + '\n相册描述: '+ album.desc + '\n相册权限: '+ album.access + "\n相册日期: "+ album.date + '\n相片个数: ' + album.num + '\n相册封面: ' + album.src + '\n相册ID: ' + album.id);					
				}
				document.getElementById("album").innerHTML = str;
			}
			
			function Album() 
			{
			  this.title = "";
			  this.summary="";
			  this.access="";
			  this.thumbnail="";
			}

			function Thumbnail(url) 
			{
			  this.url = url;
			  this.width = 80;
			  this.height = 80;
			}


			function getAlbum(albumid, newPage)
			{
				if (current_page == newPage)
				{
					return;
				}
				current_page = newPage;
				navigae_page = ((current_page - 1) * max_results) + 1;
				var url = 'http://picasaweb.google.com/data/feed/api/user/' + userName + '/albumid/' + albumid + '?category=photo&max-results='+ max_results +'&start-index='+ navigae_page +'&alt=json';
				createXMLHttpRequest();
				XMLHttpReq.open("get",url,true);

				XMLHttpReq.onreadystatechange = function()
				{
					  if(XMLHttpReq.readyState==4)
					   {
						 if(XMLHttpReq.status == 200)
						 {
						 	var func = new Function("return " + XMLHttpReq.responseText);
							var json = func();
							display(json,albumid);
						 }
					   }

				}
				XMLHttpReq.send(null);
			}

			function display(j,albumid)
			{
				var img_sum = j.feed.openSearch$totalResults.$t;
				var album_title = j.feed.subtitle.$t;
				var album_date = j.feed.gphoto$timestamp.$t;
				var c = new Date(); 
				c.setTime(album_date);
				album_date = c.toLocaleDateString() + " " +c.toLocaleTimeString();
				var len = j.feed.entry.length;
				//分页
				var page = "";
				var pageCount = (img_sum / max_results);
				var ppage = "上一页 | ",
				npage = "| 下一页";
				if (current_page > 1) 
				{
					ppage = "<a href=javascript:void(0) onclick=getAlbum('" + albumid + "'," + (parseInt(current_page) - 1) + ")>上一页</a> | ";
				};
				if (current_page < pageCount) 
				{
					npage = "| <a href=javascript:void(0) onclick=getAlbum('" + albumid + "'," + (parseInt(current_page) + 1) + ")>下一页</a>";
				};
				page += ppage + "page";
				for (var i = 1; i < pageCount + 1; i++) 
				{
					if (i == current_page) 
					{
						page +=  "<b>[" + (i) + "]</b>";
					} 
					else 
					{
						page +=  "<a href=javascript:void(0) onclick=getAlbum('" + albumid  + "'," + i + "&nbsp;)>" + (i) + "</a>";
					};
				};
				page += npage;
				//alert(img_sum + ", " + album_title + ", " + album_date + ", " + len);
				var str = "";
				for(var i=0; i<len; i++)
				{
					var img_src = j.feed.entry[i].content.src;
					var img_id = j.feed.entry[i].gphoto$id.$t;
					var img_desc = j.feed.entry[i].summary.$t;
					var img_date = j.feed.entry[i].exif$tags.exif$time ? j.feed.entry[i].exif$tags.exif$time.$t : j.feed.entry[i].published.$t; 
					//alert(img_src + ", " + img_id + ", " + img_desc + ", " + img_date);
					str += "<a href=" + img_src + "&crop=0 target=_blank title=" + img_desc + "><img src=" + img_src + "?imgmax=" + img_small + "&crop=1 border=1  style='margin:20px;' /></a>";
				}
				
				var slideshow = "<a href='http://picasaweb.google.com/" + userName + "/" + j.feed.gphoto$name.$t + "/photo#s" + j.feed.entry[0].gphoto$id.$t + "' rel='gb_page_fs[]' target='_new'>View as slideshow</a>";

				document.getElementById("album").style.display = "none";
				document.getElementById("slideshow").innerHTML = slideshow;
				document.getElementById("img").innerHTML = str;
				document.getElementById("page").innerHTML = page;
			}
		</script>
	</head>
	<body onload="load()">
		<div id="album"></div>
		<div id="slideshow"></div>
		<div id="img"></div>
		<div id="page"></div>
	</body>
</html>
分享到:
评论

相关推荐

    picasa3相册-setup.exe

    最新最好用的picasa管理相册工具! picasa3相册-setup.exe

    picasa网络相册· 照片管理

    是一款步错的这些好片安慰她·奇文共赏企业和统计2

    GooglePicasa3picasa网络相册V3.9.0Build(141.259)谷歌图像浏览器官方安装版

    很强大的功能,如果你的相片,图片,放在你的电脑上面但你本人已经忘记在哪个目录并且不记得文件名了。那就使用它吧,它可以帮你快速的在你的电脑上找到。...您可以通过拖放操 作来排列相册,还* Fac

    picasa:一个适用于Node.js的简单Google相册(正式称为Picasa网络相册2.0)客户端

    一个简单的Google相册,正式用于Node.js(&gt; = 4.8.7)的Picasa网络相册客户端(2.0)。 包括Auth助手。安装$ yarn add picasa或者$ npm install --save picasa用法const Picasa = require ( 'picasa' )const picasa ...

    模仿Picasa的js图片缩放

    模仿Picasa的js图片缩放,也是在网上获得,然后做了一定的修改

    Picasa谷歌相册管理软件 v3.9.0.136.12.zip

    每次打开 Picasa 时,它都会自动查找所有图片(甚至是那些您已经遗忘的图片),并将它们按日期顺序放在可见的相册中,同时以您易于识别的名称命名文件夹。您可以通过拖放操作来排列相册,还可以添加标签来创建新组。...

    Google(谷歌)Picasa网络相册为什么打不开以及从2009年07月16日起访问的方法解决方法

    太牛逼了,相册出了问题后,我已经被折磨的快疯了,搜到的这个小程序代码,试着复制到注册表里,打开后直接就可以用了。真是太牛太神奇了。。比那个什么google+album要好多了,至少到现在我也不会用google+album这个...

    JAlbum 2 Picasa:转换JAlbum画廊以上传到Google Picasa网络相册-开源

    命令行工具,用于将JAlbum画廊从文件系统上载到Google Picasa网络相册。 将处理JAlbum的元数据(图库名称,描述,照片订购,评论等),并将其用于将照片上传到Picasa网络相册。

    谷歌相册管理软件Picasa3.9.136.180

    Picasa(谷歌相册管理软件)是一个可在计算机上查看、整理、修改和共享数码照片的软件,它会让所有这些工作变得简单而有趣。Picasa 不会未经您的允许就删除照片或将照片放到网络上。 - 自动将你的相片从你的数码相机...

    Google Picasa相册辅助工具

    本工具是为Google Picasa相册提供网络[IMG]标签的批量转换工具,使用方法:输入对应的相册地址,待加载完成,点击转换按钮,再点击复制按钮到剪贴板即可。

    picasaweb

    Google PicasaWeb(网络相册),很不错的

    picasa39-setup.zip

    picasa 图片编辑器 picasa 图片编辑器 picasa 图片编辑器 picasa 图片编辑器 picasa 图片编辑器 picasa 图片编辑器 picasa 图片编辑器 picasa 图片编辑器 picasa 图片编辑器 picasa 图片编辑器 picasa ...

    picasa 图片管理工具

    使用 Picasa 和 Picasa 网络相册,可以轻松地整理和修改数码照片。图片查看方便快捷。

    谷歌相册管理软件 Picasa 3.6.95.25/3.1.71.48

    Picasa 不会未经您的允许就删除照片或将照片放到网络上。  - 自动将你的相片从你的数码相机传输到你的电脑上.  - 管理图片并让你能在几秒中内查找到所需的图片.  - 让你轻松地编辑, 打印以及共享相片  - 创建...

    PicasaFreeResize:将您的Picasa网络相册照片调整为自由尺寸的工具

    PicasaFreeResize 将您的Picasa网络相册照片调整为自由尺寸的工具 需要:ImageMagik 用法:java -jar PicasaFreeResize.jar / path / to / convert 密码

    picasa

    picasa一款不错的图像处理软件

    Picasa 2.7中文版(最新版)

    Picasa是Google出品的照片管理软件,其功能之强大并不亚于ACDSee。主要特色是:1。自动搜索电脑中的所有图片(相信有些是你从未领略过的...使用 Picasa网络相册与亲朋好友在线共享;5。虽然免费但绝对没有令人生厌的广告

    恢复PICASA访问

    国内不能用picasa的,可以这样干,bat文件用记事本打开可以看到,其实只是把网址指向了解析地址。

    谷歌相册管理软件 Picasa v3.9.0.136.12

    每次打开 Picasa 时,它都会自动查找所有图片(甚至是那些您已经遗忘的图片),并将它们按日期顺序放在可见的相册中,同时以您易于识别的名称命名文件夹。您可以通过拖放操作来排列相册,还可以添加标签来创建新组。...

    Picasa管理工具

    Google 的免费图片管理工具Picasa,数秒钟内就可找到并欣赏计算机上的图片。 Picasa 原为独立收费的图像管理、处理软件,其界面美观华丽, 功能实用丰富。

Global site tag (gtag.js) - Google Analytics