有段时间为了做个事情,需求大概这样:有几组照片集(或者叫相册)需要在软件中就行快速浏览,效果类似于Windows操作系统中的照片查看器,既可以缩略图看,也可以逐个放大看,也可以幻灯片形式放映。要求WinForm程序中实现并集成。

初看逐个问题很简单嘛,找个现成图片浏览控件,或者干脆自己写一个也行。没想到一圈照下来,还真就没找到一个合适的WinForm的.NET控件能实现如此需求。

最后无意中发现这个网站,http://www.cooliris.com/,眼睛顿时放光,如果能把网站上的flash文件下载下来为我所用不就可以解决这个问题了嘛。子系统一看,还真是这个网站本省就提供二次开发集成功能,不过是针对在线站点做嵌入集成来解决图片浏览问题,移植到WinForm桌面程序中可否?还真未可知。

一番折腾之后最后终于搞定。记得中间遇到了一些问题,但因为当时没有在博客上记录,现在细节已经记不清楚了,就写个最后结果记录一下。

四个必备文件如下:

cooliris.swf:就是控件本身,即用来做图片浏览的Flex程序。

crossdomain.xml:跨域文件,这个就不解释了,做Flex,SL开发的都遇到过。

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy><allow-access-from   domain="*" secure="false" />
</cross-domain-policy>

photos.rss:相册文件的Rss源,或者叫目录也行。其中包含了图片文件的缩略图路径和源文件路径,被cooliris.swf程序读取。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss">
<channel><generator>piclens publisher win 1.0.12</generator>
<title></title>
<link></link>
<description></description><item><title>IMG_0007</title><link>pl_images/IMG_0007.jpg</link><guid>1a9d1e63-407a-4c3b-8fae-3fa8ac51749b</guid><media:thumbnail url="pl_thumbs/IMG_0007_thumb.jpg" /><media:content url="pl_images/IMG_0007.jpg" type="" /></item><item><title>IMG_0008</title><link>pl_images/IMG_0008.jpg</link><guid>21243987-da59-4de1-93e2-2ef23150b09a</guid><media:thumbnail url="pl_thumbs/IMG_0008_thumb.jpg" /><media:content url="pl_images/IMG_0008.jpg" type="" /></item><item><title>IMG_0009</title><link>pl_images/IMG_0009.jpg</link><guid>8f29e5b7-85e9-4886-a2cc-76f7f10b201d</guid><media:thumbnail url="pl_thumbs/IMG_0009_thumb.jpg" /><media:content url="pl_images/IMG_0009.jpg" type="" /></item></channel>
</rss>

index.html:即承载flex控件cooliris.swf的网页文件,如果你是站点放在aspx等文件中也行。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
</head>
<body><div style="width: 100%; height: 100%; overflow: hidden; position: relative; text-align: center;"><object id="o" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="cooliris.swf" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="bgColor" value="#ffffff" /><param name="flashvars" value="feed=photos.rss" /><param name="wmode" value="opaque" /></object></div>
</body>
</html>

除此之外还需要两个目录:(当然名称随意了,只要你photo.rss文件中的路径指向对了就OK)

pl_images:原始文件文件夹

pl_thumbs:缩略图文件文件夹

如此所需文件就齐全了,在WinForm程序中调用,其实很简单。就放一个WebBrowser控件,一句话即可:

//调用相册
webBrowser1.Navigate(AppPath + @"\photo\index.html");
 

值得注意的是,这里是将图片和缩略图提前做好的,对此http://www.cooliris.com/提供了一个工具PicLensPublisher_1012.msi可以预先对静态图片生成rss文件和缩略图。

如果需要展示的相册是动态变化的,或者不断增加的,则可以自己动手写点代码实现自动生成或更新photo.rss文件,其格式如上所示很简单,每个图片占一个<item></item>即可,缩略图生成在.net中也很简单,调用GDI+中System.Drawing.Image.GetThumbnailImage()函数即可。

如此一个超炫的图片浏览控件就集成到了你的应用程序中了,有没有使您的程序增色呢。截两张图看看吧!

截图1:三维照片墙

截图2:幻灯浏览

示例数据及代码:thumb_demo.rar

一个很炫的图片/相册浏览控件(Flex实现)相关推荐

  1. 原创“.NET研究”企业级控件库之图片浏览控件

    在上两篇:我介绍了原创企业级控件库之组合查询控件 和原创企业级控件库之大数据量分页控件,受到了很多朋友的支持,给了我很大的动力,在此我特表感谢.有的朋友要求把源码提供上来,我在第一篇就讲了,源码会在我 ...

  2. 纯CSS的实现仿图片相册浏览模式代码

    演示下载 查看演示 立刻下载 本文标题: 纯CSS的实现仿图片相册浏览模式代码 固定链接: http://www.tcode.me/article/1215.html 来自淘代码转载请注明

  3. 用HTML语言编写一个个人主页,Html+CSS +Javascript实现的一个很炫个人主页网页

    [实例简介] Html+CSS +Javascript实现的人主页网页,纯属个人原创.支持Firefox.IE等各种浏览器.值得作业提交,其他的也可作为参考! [实例截图] [核心代码] HtmlCS ...

  4. android 图片轮播组件,Android客户端实现图片轮播控件

    本文和大家一起写一个Android图片轮播控件,供大家参考,具体内容如下 1. 轮播控件的组成部分 我们以知乎日报Android客户端的轮播控件为例,分析一下轮播控件的主要组成: 首先我们要有用来显示 ...

  5. C#发现之旅 --- WinForm.NET中开发具有固定背景图片的可滚动控件

    摘要 在本文章中笔者使用WinForm.NET2.0开发出一个具有固定背景图片的带滚动条的容器控件.点击下载本文章配套的演示程序 /Files/xdesigner/FixedBackground.zi ...

  6. [UWP]实现一个轻量级的应用内消息通知控件

    [UWP]实现一个轻量级的应用内消息通知控件 原文:[UWP]实现一个轻量级的应用内消息通知控件 在UWP应用开发中,我们常常有向用户发送一些提示性消息的需求.这种时候我们一般会选择MessageDi ...

  7. 能够附加图片的标签控件iOS项目源码

    这个源码案例是能够附加图片的标签控件,源码JTImageLabel,JTImageLabel能够附加图片的标签Label控件,图片可以随意更换.位置也能够很好的控制. 效果图: <ignore_ ...

  8. 一个Demo让你掌握Android所有控件

    一个Demo让你掌握Android所有控件 原文:一个Demo让你掌握Android所有控件 本文是转载收藏,侵删,出处:"安卓巴士"      下面给出实现各个组件的源代码: 1 ...

  9. 9206晚自习点歌功能拆解 图片加载 控件显示与隐藏等等

    使用panel面版布局 控制面版的Dock属性 项目资源存放位置 bin/debug下 布局图片 工具栏的设置 设置工具项为图文模式 图在上,文在下 给菜单项添加图片,并且设置图片不压缩,不缩小 左右 ...

最新文章

  1. 利用SqlHelper.cs实现Web程序对数据库的增、删、改等操作
  2. android r.java 原理,深入理解Android消息处理系统原理
  3. 反射的基本知识(详解)
  4. 统计学习方法笔记(李航)———第五章(决策树)
  5. canvas绘制圆和弧(三)
  6. 批量下载wsdl文件
  7. 上位机和下位机通信故障判断方法
  8. php左斜线和右斜线,左斜杠和右斜杠分别有什么意义?
  9. 手机通信专有名词中英文
  10. Spring MVC + Java 多文件上传及多文件中转上传
  11. TDA4开发板开发学习
  12. 设计模式之--中介者模式
  13. 大学物理质点动力学思维导图_《大学物理》(2019-2020-2)
  14. 钉钉与wcp知识库集成工具
  15. 机器人的自述作文_机器人的自述作文
  16. 比A100性能高4.5倍!英伟达H100横扫AI推理基准测试
  17. 福昕风腾pdf导出为html,福昕高级PDF编辑器,支持文档格式转化、OCR 文字识别的智能 PDF 编辑器...
  18. 网站信息无障碍辅助工具
  19. spellman高压电源维修X4629高压发生器维修
  20. 《跟小海龟学Python》图书介绍、代码下载、视频教程

热门文章

  1. Linux 多线程可重入函数
  2. spring jdbcTemplate 插入对象返回主键值
  3. 【AD用户设置系列一】让IT省心省力的漫游配置文件
  4. CPU高负载排查小技巧(2分钟速读版),细心的优化可能为公司节省一个亿!
  5. spark BlockManager如何实现shuffle
  6. python大纲_python学习大纲
  7. golang 筆記:make 與 new 的差別
  8. ndroid中View.inflate()
  9. 下一代微服务Service Mesh原理及实践
  10. 坑爹的公交卡充值的流程