`
庄表伟
  • 浏览: 1152027 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

干成一桩大事

阅读更多

  我是豆瓣的会员,又用的是MSN Spaces的BLOG,目前用得还不错,都不打算退出。但是豆瓣提供的那个豆瓣秀服务,在MSN Spaces上用不成

  没办法,只能自己动手了。实际效果,见:http://spaces.msn.com/members/zbw25/

  1、搞一个Custom HTML
  2、在公司的服务器上,装一个软件,ImageMagick。下载地址:http://www.imagemagick.org/download/binaries/ImageMagick-6.2.5-4-Q16-windows-dll.exe

  3、下载一个JMagick。下载地址:
http://www.yeo.id.au/jmagick/quickload/win-6.2.4/jmagick-6.2.4-1-IM-6.2.5.zip

  4、将dll文件,copy到Windows的System32目录下。将jar文件copy到某lib目录下。

  5、写一个Servlet,代码如下:

  1 package tv.recool.misc;
  2 
  3 import java.io.*;
  4 import java.text.*;
  5 import java.util.*;
  6 import javax.servlet.*;
  7 import javax.servlet.http.*;
  8 import java.net.MalformedURLException;
  9 import java.net.URL;
 10 import java.net.URLConnection;
 11 
 12 import magick.ImageInfo;
 13 import magick.MagickImage;
 14 import magick.MontageInfo;
 15 
 16 public class PutBooks extends HttpServlet {
 17 
 18     //根据url,取得图片的byte[]
 19     private static byte[] getImageBytes(String url){
 20         try {
 21             return StreamUtils.read((new URL(url)).openStream());
 22         } catch (Exception e) {
 23             return null;
 24         }
 25     }
 26     
 27     //根据url,取得文字
 28     private static String getImageText(String url){
 29         try {
 30             URL u=new URL(url);
 31             URLConnection uc=u.openConnection();
 32 
 33             //要做足功夫,不然豆瓣就会拒绝你的请求
 34             uc.setRequestProperty("Host","www.douban.com");
 35             uc.setRequestProperty("Accept","*/*");
 36             uc.setRequestProperty("Referer","http://www.douban.com/");
 37             uc.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)");
 38             uc.setRequestProperty("Pragma","no-cache");
 39             uc.setRequestProperty("Cache-Control","no-cache");
 40             uc.setRequestProperty("Connection","close");
 41 
 42             //StreamUtils是一个辅助工具,就不再给出了
 43             return new String(StreamUtils.read(uc.getInputStream()),"utf-8");
 44         }  catch (Exception e) {
 45             return "";
 46         }
 47     }
 48 
 49     public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{
 50         //取得参数
 51         String uid=req.getParameter("uid");
 52         String n=req.getParameter("n");
 53         String columns=req.getParameter("columns");
 54         String select=req.getParameter("select");
 55         String picsize=req.getParameter("picsize")+"";
 56         String show=req.getParameter("show");        
 57 
 58         try {
 59             //设置JMagick的ClassLoader,否则会报错
 60             System.setProperty("jmagick.systemclassloader","no");
 61 
 62             String str= getImageText("http://www.douban.com/service/badge/"+
 63                 uid+"/?show="+show
 64                 +"&select="+select
 65                 +"&n="+n
 66                 +"&picsize="+picsize
 67                 +"&columns="+columns);
 68 
 69             int getSize=Integer.parseInt(n);
 70             int colSize=Integer.parseInt(columns);
 71             int len=getSize/colSize;
 72 
 73             //申请一个数组
 74             MagickImage images[] = new MagickImage[getSize];
 75 
 76             //用最简单的办法解析字符串,因为豆瓣的输出是固定的
 77             String imgstr[]=str.split(".jpg");
 78 
 79             for(int i=0;i<getSize;i++){
 80                 if(i<imgstr.length){
 81                     String picurl="";
 82 
 83                     //根据图片大小的设定,解析有所不同
 84                     if(picsize.equals("medium")){
 85                         String temps[]=imgstr[i].split("http://www.douban.com/mpic/");
 86                         picurl="http://www.douban.com/mpic/"+temps[1]+".jpg";
 87                     } else {
 88                         String temps[]=imgstr[i].split("http://www.douban.com/spic/");
 89                         picurl="http://www.douban.com/spic/"+temps[1]+".jpg";
 90                     }
 91                     MagickImage image = new MagickImage(new ImageInfo(),getImageBytes(picurl));
 92                     images[i]=image;
 93                 }
 94             }
 95 
 96             //建立一个图片组
 97             MagickImage seqImage = new MagickImage(images);
 98 
 99             //建立一个图片框架
100             MontageInfo montageInfo = new MontageInfo(new ImageInfo());
101 
102             //setGeometry(String)设置图片的几何特征
103             if(picsize.equals("medium")){
104                 montageInfo.setGeometry("99x149+1+1>");
105             } else {
106                 montageInfo.setGeometry("66x99+1+1>");
107             }
108 
109             //NxM的一个表格
110             montageInfo.setTile(colSize+"x"+len);
111             montageInfo.setBorderWidth(0);
112 
113             //得到一张组合后的图片
114             MagickImage montage = seqImage.montageImages(montageInfo);
115             montage.writeImage(new ImageInfo());
116             montage.setMagick("JPG");
117 
118             //输出到byte[]
119             byte data[]=montage.imageToBlob(new ImageInfo());
120 
121             //通过Servlet输出
122             res.setContentType("image/*");
123             OutputStream toClient=res.getOutputStream();
124             toClient.write(data);
125             toClient.close();
126         }
127         catch (Exception ex) {
128         }
129     }
130 }


  6、在MSN Spaces的Custom HTML中,写以下HTML:

<href="http://www.douban.com/people/1019112/"><img src="http://www.recool.tv:8080/Recool-WebServer/putBooks?uid=1019112&show=collection&select=random&n=12&columns=3" border=0 width=178></a>

  7、搞定,收工。

分享到:
评论

相关推荐

    《生产安全事故典型案例盘点(2021版)》观后感.docx

    "我们在工作中应时刻保持警惕,不能因为任务紧急或者认为小事一桩就忽视安全规则。安全生产需要我们每个人树立"安全第一,预防为主"的观念,从自身做起,从每一次操作做起,防患于未然。事故的教训是惨痛的,但它们...

    每日微信早安问候语经典短信.docx

    8. **平衡生活**:"有一份宠爱的工作,有一桩成长的婚姻,有一个聪慧的孩子,有几个工作之外的乐趣",提醒我们要平衡工作与生活,享受多方面的幸福。 9. **目标一致**:"全部的人都以欢快幸福作为他们的目的",这...

    以道德为题的经典演讲稿.docx

    如果每个人都认为丢弃零食包装袋是小事一桩,那么校园环境将迅速恶化,不仅影响美观,还可能对学生的身心健康产生负面影响。反之,如果我们都能主动捡起地上的垃圾,虽然看似微不足道,但这样的小善举累积起来,就能...

    《宋太祖怕史官》阅读答案.doc

    故事中,赵匡胤在后苑的闲暇时光,被臣子打扰,原以为是紧急大事,结果却是一桩平常政务。情绪失控之下,他动用了手中的柱斧柄,打伤了臣子的牙齿。在这里,我们看到了一个专制、冲动、易怒的皇帝形象。赵匡胤的这种...

    建筑工地实习周记40篇.doc

    这包括了定桩位、做护壁、开孔、对中、冲孔及除渣、定岩面、终孔、下钢筋笼和灌注成桩等一系列工序。在三轴搅拌桩的施工过程中,他也亲身体验了导沟开挖、放导轨、设定施工标志、钻拌、放应力补强材等步骤。为了确保...

    小学生俗语歇后语此一解释.docx

    3. "百闻不如一见,百见不如一干" 强调实践的重要性,理论知识固然重要,但亲身实践才能真正理解和掌握。 4. "篱笆扎得紧,野狼钻不进" 教导我们要保持警惕,做好防范,预防总是优于补救。 5. "狐狸没捉到,惹了一...

    复合地基技术规范.pptx

    复合地基技术规范的出台,是土木工程领域内的一件大事。复合地基,顾名思义,是指通过人工方法在天然地基中加入增强体,形成人工与自然地基材料共同工作的复合体系。在建筑、交通、水利、市政等众多领域中,复合地基...

    施工员试用期工作总结.doc

    在这里,我作为施工员,参与了第四作业区的灌注桩施工,亲手打下了公司重大项目的第一根灌注桩。面对挑战,我们团队从未退缩,用坚持和努力确保了工程的顺利进展。这段经历让我更加坚信,作为施工员的我们,是项目...

    宁波万达广场一区(二期家居广场)工程监理月报.doc

    本期监理月报记载了自2007年12月4日至2007年12月23日期间的现场工作大事记,包括:Ⅰ区补桩完成、地下室柱子钢筋直螺纹连接试件不合格、Ⅵ区域地下室柱、顶板、梁砼浇筑、Ⅵ区余留土方外运完成、Ⅵ区锚杆支护施工...

    建筑工地顶岗实习日记范文

    钢筋笼的制作和安装是另一个关键环节,实习生需要了解钢筋笼的质量对桩基础稳定性的重要性。在这一过程中,实习生将学习到钢筋的点焊、支撑和加强等重要操作技术,确保钢筋笼在运输和吊放过程中的质量不受损害。 在...

    XX大厦开盘策划方案.doc

    XX大厦的开盘是房地产行业中的一件大事。对于开发商而言,成功的开盘不仅能迅速提升项目的知名度,更能为后续的销售奠定坚实的基础。这也是一次对外展示企业理念和品牌形象的重要机会,因此,精心策划的开盘活动是必...

    英语口语缩写聊天缩写.doc

    - **BFD**:全称是“Big Fing Deal”,一种非正式的表达,意味着“大事一桩”。 - **BFN**:全称是“Bye For Now”,与B4N相似,表示暂时告别。 - **BHOF**:全称是“Bald Headed Old Fool”,这里可能是幽默地形容...

    路基施工安全技术交底大全.doc

    在锚杆(索)的施工过程中,应禁止重叠作业,并采取干钻等安全规范,以减少作业风险。 4. 软基处理施工安全: 在采用CFG桩等软基处理技术时,施工人员需严格遵守安全操作规程,如避免直接接触泥土,确保钻杆方向...

    2017年首届中国(南京)国际新能源汽车电动车及充换电设备展览会招展启动.pdf

    在2017年,中国新能源汽车行业迎来了一件值得纪念的大事——首届中国(南京)国际新能源汽车电动车及充换电设备展览会的举办。这场盛会不仅展示了行业内的最新技术与产品,更成为了推动新能源汽车行业发展的重要平台。...

    县人民医院职工餐厅工程施工组织设计方案.docx

    例如,对原有控制桩的复测、建立平面控制方格网,以及利用激光铅直仪进行竖向轴线传递等方法,都是为了提高施工精度,确保工程质量。这些措施的实施,能够有效预防和纠正施工中的偏差,保障工程最终的质量。 五、...

    精品(2021-2022年)资料苏教版小学四年级上册语文期末总复习资料(1).doc

    - 赞美老师的名言:李商隐的"春蚕到死丝方尽,蜡炬成灰泪始干"描绘了教师无私奉献的精神。杜甫的"随风潜入夜,润物细无声"形象地比喻老师默默无闻的教诲。陶行知的"捧着一颗心来,不带半根草去"体现了教师的全心...

    激励孩子一生的经典语句.pdf

    22. **当一个小小的心念变成行为时,便能成了习惯**:思想转化为行动,进而形成习惯,塑造个人性格。 23. **奋斗没有终点,任何时候都是一个起点**:鼓励孩子们始终保持奋斗精神。 24. **构成我们学习最大障碍的是...

    湖南省长沙市2020学年七年级思想品德上学期期末考试试题 新人教版.doc

    2. **团队合作**:“一个篱笆三个桩,一个好汉三个帮。”这句话强调了团结协作的重要性,无论是学习还是生活中,只有大家齐心协力,才能创建优秀的集体。 3. **有效学习方法**:为了更好地完成初中阶段的学习任务,...

    Lrelpd工程施工总结借鉴.pdf

    安全工作被视作头等大事,项目部配置了专职安全管理人员,制定了全面的安全防范措施。工地实行封闭式管理,设置安全标识,对关键区域增加安全巡视员,确保所有工人接受安全教育并正确佩戴安全装备。通过安全防范、...

    黑龙江省大庆市2017_2018学年八年级道德与法治9月双周测试题新人教版五四制.doc

    1. **人际交往与社会生活**:试题中的谚语“一个篱笆三个桩,一个好汉三个帮”强调了人际交往对于个人成长和社会生活的重要性。小华一家的例子展示了家庭成员如何在不同领域(学习、工作、娱乐)参与社会生活,说明...

Global site tag (gtag.js) - Google Analytics