<?xml version="1.0" encoding="GBK" ?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dcterms="http://purl.org/dc/terms/">
 <channel>
  	  <title><![CDATA[讲爱情讲友谊再之后是什么...]]></title>
	  <link>http://soulmjs.blog.163.com</link>
	  <description><![CDATA[电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度...]]></description>
	  <language>zh-CN</language>
	  <pubDate>Wed, 28 Oct 2009 18:38:48 +0800</pubDate>
	  <lastBuildDate>Wed, 28 Oct 2009 18:38:48 +0800</lastBuildDate>
	  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
	  <generator><![CDATA[NetEase Space]]></generator>
	  <managingEditor><![CDATA[soulmjs]]></managingEditor>
	  <webMaster><![CDATA[╃晴天PIGPIG]]></webMaster>
		  <ttl>120</ttl>
	  <image>
	  	<title><![CDATA[讲爱情讲友谊再之后是什么...]]></title>
	  	<url>http://ava.bimg.126.net/photo/QPaV3yXANqmpRJf7AW_s_A==/1487032301962599179.jpg</url>
	  	<link>http://soulmjs.blog.163.com</link>
	  </image>
  <item>
  	<title><![CDATA[一起期待 龙之谷 吧]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/42994439200992852656403</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em"><SPAN>&nbsp;龙之谷</SPAN></P>
<P style="TEXT-INDENT: 2em"><SPAN></SPAN>&nbsp;</P>
<P style="TEXT-INDENT: 2em"><SPAN><EMBED allowScriptAccess="never" allowNetworking="internal" wmode="transparent" style="DISPLAY: block" pluginspage=http://www.macromedia.com/go/getflashplayer src=http://media.static.sdo.com/dn/dn/project/shipintuiguang/video.swf type=application/x-shockwave-flash   wmode="transparent" quality="high"></EMBED>&nbsp;</SPAN></P>
<P style="TEXT-INDENT: 2em">　　游戏相关信息 </P>
<P style="TEXT-INDENT: 2em">　　游戏名称：龙之谷(DragonNest) </P>
<P style="TEXT-INDENT: 2em"><IMG title="一起期待 龙之谷 吧 - ╃晴天PIGPIG - 讲爱情讲友谊再之后是什么..." alt="一起期待 龙之谷 吧 - ╃晴天PIGPIG - 讲爱情讲友谊再之后是什么..." src="http://t2.baidu.com/it/u=3090408857,407653883&amp;fm=4&amp;gp=8.jpg"></P>
<P style="TEXT-INDENT: 2em">中<WBR>文<WBR>L<WBR>O<WBR>G<WBR>O<WBR></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">　　游戏类型：角色扮演</P>
<P style="TEXT-INDENT: 2em">　　游戏特征：奇幻游戏</P>
<P style="TEXT-INDENT: 2em">　　开发公司：Eyedentity Games</P>
<P style="TEXT-INDENT: 2em">　　代理运营公司：盛大</P>
<P style="TEXT-INDENT: 2em">　　目前状况：韩服二次测试时间9月22日-10月1日。国服在9月初盛大已经进行内部测试，对外测试目前没有准确消息。</P>
<P style="TEXT-INDENT: 2em">　　游戏介绍</P>
<P style="TEXT-INDENT: 2em">　　这是一款有着可爱、优美画面与激烈战斗系统的On<WBR>line Act<WBR>ion RPG游戏。开发团队运用丰富的单机动作游戏开发经验，使《Dragon Nest》成为拥有诸多独特动作表现的RPG游戏。其战斗系统通过简单基本的操作，就可以实现KOF般的连击爽快感，还加入了把敌人打飞的[空中连击]、怪物撞到墙上再弹回时重新连击的[墙壁连击]。</P>
<P style="TEXT-INDENT: 2em">　　游戏以九条龙争霸的幻想世界为背景，为了打退九条龙或为了成为另一传说中的龙而进行的冒险是游戏的主要内容。角色的华丽连招技能和怪物多种攻击动作，还有根本无法想象到的方向进行攻击的怪物的人工智能是游戏值得关注的地方。</P>
<P style="TEXT-INDENT: 2em">　　这款游戏在中国区的代理商为：盛大。</P>
<P style="TEXT-INDENT: 2em">　　韩国NEXON开发公司“Eyedentity Games”在9月4日公开了正在研发中的《Dragon Nest》的游戏介绍与截图。’。</P>
<P style="TEXT-INDENT: 2em">　　《Dragon Nest》是韩国一家新成立的游戏开发公司正在进行开发的动作RPG。游戏以九条龙争霸的幻想世界为背景，为了打退九条龙或为了成为另一传说中的龙而进行的冒险是游戏的主要内容。</P>
<P style="TEXT-INDENT: 2em">　　角色的华丽连招技能和怪物多种攻击动作，还有根本无法想象到的方向进行攻击的怪物的人工智能是游戏值得关注的地方，《Dragon Nest》目前尚处于开发初始阶段，离预计的内测时间还有半年左右。</P>
<P style="TEXT-INDENT: 2em">　　《Dragon Nest》游戏中采用的是在随机产生的地下城与野外进行战斗的方式，传统的MMO方式构成的村子里，玩家可以体验到商店、任务、NPC等的乐趣，同时，志同道合的4名玩家可以一同进入地下城进行组队战斗。</P>
<P style="TEXT-INDENT: 2em">　　因为地下城是随机产生的，所以不仅地图的布局会改变，每次怪物的出现方式也会不同。特别是当玩家的等级越高、会遇到越来越强大、智商越高的怪物，所以防止了把地图背下来，或根据一定的攻略线路进行游戏。</P>
<P style="TEXT-INDENT: 2em">　　游戏特点</P>
<P style="TEXT-INDENT: 2em">　　1）个性鲜明的4个角色 </P>
<P style="TEXT-INDENT: 2em"><IMG title="一起期待 龙之谷 吧 - ╃晴天PIGPIG - 讲爱情讲友谊再之后是什么..." alt="一起期待 龙之谷 吧 - ╃晴天PIGPIG - 讲爱情讲友谊再之后是什么..." src="http://t1.baidu.com/it/u=338286987,2728667895&amp;fm=0&amp;gp=20.jpg"></P>
<P style="TEXT-INDENT: 2em">职<WBR>业<WBR>原<WBR>画<WBR></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">　　《Dragon Nest(龙之谷)》职业分为战士、弓箭手、牧师、法师 4种。</P>
<P style="TEXT-INDENT: 2em">　　战士(Warrior) </P>
<P style="TEXT-INDENT: 2em">　　性别：男 </P>
<P style="TEXT-INDENT: 2em">　　特征：给予近战伤害，基本攻击为通过连击的组合攻击，具有强大的攻击力、防御力相比弓手较弱，可进行快速移动的猛击，通过DRAWING武器和部分技能可牵制远距离敌人。 </P>
<P style="TEXT-INDENT: 2em">　　弓手(Archer) </P>
<P style="TEXT-INDENT: 2em">　　性别：女 </P>
<P style="TEXT-INDENT: 2em">　　特征：给予远距离伤害，基本攻击为单发性箭攻击，具有牵制型技能及高级型攻击的远距离技能，具有以脚为基础的一次性近战体术攻击，体力虽差，但具有互补的多种回避技能. </P>
<P style="TEXT-INDENT: 2em">　　牧师(Cleric) </P>
<P style="TEXT-INDENT: 2em">　　性别：男 </P>
<P style="TEXT-INDENT: 2em">　　特征：近战混合型，基本连续攻击的眩晕几率高，使用盾牌，一定几率防御敌人的攻击，回避动作较弱，唯一拥有治疗技能，具有攻击魔法技能，可与远距离敌人对立。 </P>
<P style="TEXT-INDENT: 2em">　　巫师(Sorceress) </P>
<P style="TEXT-INDENT: 2em">　　性别：女 </P>
<P style="TEXT-INDENT: 2em">　　特征：远距离混合型，近战的基本攻击，通过多种辅助魔法及范围攻击，可攻击群怪，具有利用对方属性的弱点进行攻击的多种技能，具有强大的范围型魔法技能。 </P>
<P style="TEXT-INDENT: 2em">　　可爱又不乏灵气的4个角色都具备自己独有的技能，相信玩家在体验不同角色的同时也都会得到不同的快乐。 </P>
<P style="TEXT-INDENT: 2em">　　2）童话奇幻风格却不失大气的画面</P>
<P style="TEXT-INDENT: 2em">　　一部动画般的画面，龙之谷就像在看一部动画冒险动作片，可爱的角色设计和大气的背景画面，整个DragonNest(龙之谷)世界就是清新和愉快的，甚至凶恶的BOSS换个角度看就会觉得可爱几分。 </P>
<P style="TEXT-INDENT: 2em">　　利用模糊效果来加强了角色的动作，配合可爱的画面和轻快的动作，整个游戏风格充满了生气和快节奏。技能效果中的灰尘像一朵朵天上的云彩似的动画感觉看起来很舒服。 </P>
<P style="TEXT-INDENT: 2em">　　3）流畅的动作性 出众的打击感</P>
<P style="TEXT-INDENT: 2em">　　龙之谷不仅仅是在使用技能的时候，一般攻击，打一个怪物的时候动作也非常着实和有快感。它利用地形（撞墙攻击甩到空中等）的攻击以及背景是童话风格但动作是偏绚丽也是它的特点之一。 </P>
<P style="TEXT-INDENT: 2em">　　龙之谷里的怪物的人工智能非常高。 这里的怪物很聪明，不像其他2款游戏中一样全部冲玩家杀来（除了BOSS战），DRAGONNEST(龙之谷)的怪物会采用不同策略来攻击玩家，包围，背后暗算，魔法陷阱，各个兵总配合等，加大了玩家在进行游戏的时候时时刻刻注意周围的环境变化。 </P>
<P style="TEXT-INDENT: 2em">　　4）操作的爽快感</P>
<P style="TEXT-INDENT: 2em">　　和只用键盘操作的2D动作游戏相比，以键盘和鼠标来同时进行控制的3D动作游戏龙之谷，增加了更多的乐趣和成就感。 </P>
<P style="TEXT-INDENT: 2em">　　FPS游戏方式的角色移动和视角控制，可以清楚看到控制十字标，所以在复杂的战斗中也很容易分清前方的敌人。 操作上虽然不是很困难，但偶尔怪物的进攻会很猛烈和突然，所以需要玩家的瞬间判断和快速的反应。 </P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/42994439200992852656403</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/42994439200992852656403</guid>
    <pubDate>Wed, 28 Oct 2009 17:26:56 +0800</pubDate>
    <dcterms:modified>2009-10-28T17:30:37+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[5 个免费的 Web 视频及音频播放器]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/4299443920094695139712</link>
    <description><![CDATA[<div>在线视频，在线音频越来越流行，即使你的网站成不了&nbsp;YouTube，也不妨在上面部署一些可以直接在线播放的视频，在&nbsp;Web&nbsp;上播放媒体，如今最可靠方案莫过于&nbsp;Flash。本文介绍5个免费的，简单易用的，可以嵌入任意网页的&nbsp;FLV&nbsp;视频与&nbsp;MP3&nbsp;音频播放器，它们都基于&nbsp;Flash&nbsp;技术。&nbsp;<br /><br /><B><wbr>1.&nbsp;Flowplayer</B><wbr><br /><wbr><a href='http://lh3.ggpht.com/_TqPdHmAEwTM/Sf3PeVAkmwI/AAAAAAAAEAI/oDgmBj5I_dY/flo.png' target='_blank'><img src="http://lh3.ggpht.com/_TqPdHmAEwTM/Sf3PeVAkmwI/AAAAAAAAEAI/oDgmBj5I_dY/flo.png" border='0'></a><wbr>&nbsp;<br /><a href="http://flowplayer.org/index.html" target="_blank">Flowplayer</a><wbr>&nbsp;是一个开源（GPL3&nbsp;许可）Web&nbsp;视频播放器，可以将视频嵌入到你的网页。&nbsp;<br />2.&nbsp;JW&nbsp;FLV&nbsp;Player&nbsp;<br /><wbr><a href='http://lh6.ggpht.com/_TqPdHmAEwTM/Sf3Qz4PRqNI/AAAAAAAAEAQ/BGG16kSgsKI/flo2.png' target='_blank'><img src="http://lh6.ggpht.com/_TqPdHmAEwTM/Sf3Qz4PRqNI/AAAAAAAAEAQ/BGG16kSgsKI/flo2.png" border='0'></a><wbr>&nbsp;<br /><a href="http://www.longtailvideo.com/players/jw-flv-player/" target="_blank">JW&nbsp;FLV&nbsp;Player</a><wbr>&nbsp;是最流行，最灵活的&nbsp;Web&nbsp;媒体播放器，它可以播放&nbsp;Flash&nbsp;所支持的所有格式，包括&nbsp;FLV,&nbsp;MP4,&nbsp;MP3,&nbsp;AAC,&nbsp;JPG,&nbsp;PNG&nbsp;以及&nbsp;GIF。还支持&nbsp;RTMP,&nbsp;HTTP&nbsp;直播媒体流，支持多种播放列表格式。还提供&nbsp;JavaScript&nbsp;API。&nbsp;<br />3.&nbsp;Flash&nbsp;Video&nbsp;Player&nbsp;Plugin&nbsp;for&nbsp;WordPress<br /><B><wbr><wbr><a href='http://lh5.ggpht.com/_TqPdHmAEwTM/Sf3Vx2t8K6I/AAAAAAAAEAg/kFzNGANxvHY/wpp.jpg' target='_blank'><img src="http://lh5.ggpht.com/_TqPdHmAEwTM/Sf3Vx2t8K6I/AAAAAAAAEAg/kFzNGANxvHY/wpp.jpg" border='0'></a><wbr></B><wbr>&nbsp;<br /><a href="http://www.mac-dev.net/blog/index.php" target="_blank">Flash&nbsp;Video&nbsp;Player</a><wbr>&nbsp;是一个&nbsp;WordPress&nbsp;插件，可以将视频快速嵌入你的&nbsp;WordPress&nbsp;博客，支持自定义皮肤，水印&nbsp;Logo&nbsp;等。将该播放器放到&nbsp;WordPress&nbsp;&nbsp;插件目录（wpcontent/plubins）&nbsp;并在系统管理中激活该插件即可使用。<a href="http://mac-dev.net/blog/flash-video-player-plugin-customization/" target="_blank">详细资料...</a><wbr>&nbsp;<br />4.&nbsp;WP&nbsp;Audio&nbsp;Player<br /><wbr><a href='http://www.comsharp.com/Writable/Resource/_Random_/2009-05-04/flo4.png' target='_blank'><img src="http://www.comsharp.com/Writable/Resource/_Random_/2009-05-04/flo4.png" border='0'></a><wbr>&nbsp;<br /><a href="http://wpaudioplayer.com/" target="_blank">WP&nbsp;Adudio&nbsp;Player</a><wbr>&nbsp;是一个&nbsp;WordPress&nbsp;插件，可以直接在&nbsp;Web&nbsp;上播放&nbsp;MP3&nbsp;文件。很容易使用和定制。在非&nbsp;WordPress&nbsp;站点，该播放器也可以使用，<a href="http://www.macloo.com/examples/audio_player/" target="_blank">这里有一个教程</a><wbr>。&nbsp;<br />5.&nbsp;XSPF&nbsp;Web&nbsp;Music&nbsp;Player<br /><wbr><a href='http://www.comsharp.com/Writable/Resource/_Random_/2009-05-04/musicplayer_sourceforge_net.gif' target='_blank'><img src="http://www.comsharp.com/Writable/Resource/_Random_/2009-05-04/musicplayer_sourceforge_net.gif" border='0'></a><wbr>&nbsp;<br /><a href="http://musicplayer.sourceforge.net/" target="_blank">XSPF&nbsp;Web&nbsp;Music&nbsp;Player</a><wbr>&nbsp;是一个基于&nbsp;Flash&nbsp;的&nbsp;Web&nbsp;程序，使用&nbsp;XSPF&nbsp;播放列表格式播放&nbsp;mp3&nbsp;音频。XSPF&nbsp;是一个&nbsp;XML&nbsp;格式的播放列表格式，该程序是用&nbsp;Actionscript&nbsp;2&nbsp;设计的。</div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/4299443920094695139712</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/4299443920094695139712</guid>
    <pubDate>Wed, 6 May 2009 21:51:39 +0800</pubDate>
    <dcterms:modified>2009-05-06T21:51:39+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Facebook 如何管理150亿张照片]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/4299443920094194320712</link>
    <description><![CDATA[<div>Facebook&nbsp;的照片分享很受欢迎，迄今，Facebook&nbsp;用户已经上传了150亿张照片，加上缩略图，总容量超过1.5PB，而每周新增的照片为2亿2000万张，约25TB，高峰期，Facebook&nbsp;每秒处理55万张照片，这些数字让如何管理这些数据成为一个巨大的挑战。本文由&nbsp;Facebook&nbsp;工程师撰写，讲述了他们是如何管理这些照片的。<br />旧的&nbsp;NFS&nbsp;照片架构老的照片系统架构分以下几个层：<br /><ul style='list-style-type:disc'><li style='margin:25px;'>上传层接收用户上传的照片并保存在&nbsp;NFS&nbsp;存储层。&nbsp;</li><li style='margin:25px;'>照片服务层接收&nbsp;HTTP&nbsp;请求并从&nbsp;&nbsp;NFS&nbsp;存储层输出照片。&nbsp;</li><li style='margin:25px;'>NFS存储层建立在商业存储系统之上。&nbsp;</li></ul>因为每张照片都以文件形式单独存储，这样庞大的照片量导致非常庞大的元数据规模，超过了&nbsp;NFS&nbsp;存储层的缓存上限，导致每次招聘请求会上传都包含多次I/O操作。庞大的元数据成为整个照片架构的瓶颈。这就是为什么&nbsp;Facebook&nbsp;主要依赖&nbsp;CDN&nbsp;的原因。为了解决这些问题，他们做了两项优化：<br /><ul style='list-style-type:disc'><li style='margin:25px;'>Cachr:&nbsp;一个缓存服务器，缓存&nbsp;Facebook&nbsp;的小尺寸用户资料照片。&nbsp;</li><li style='margin:25px;'>NFS文件句柄缓存：部署在照片输出层，以降低&nbsp;NFS&nbsp;存储层的元数据开销。&nbsp;</li></ul>新的&nbsp;Haystack&nbsp;照片架构新的照片架构将输出层和存储层合并为一个物理层，建立在一个基于&nbsp;HTTP&nbsp;的照片服务器上，照片存储在一个叫做&nbsp;haystack&nbsp;的对象库，以消除照片读取操作中不必要的元数据开销。新架构中，I/O&nbsp;操作只针对真正的照片数据（而不是文件系统元数据）。haystack&nbsp;&nbsp;可以细分为以下几个功能层：<br /><ul style='list-style-type:disc'><li style='margin:25px;'>HTTP&nbsp;服务器&nbsp;</li><li style='margin:25px;'>照片存储&nbsp;</li><li style='margin:25px;'>Haystack&nbsp;对象存储&nbsp;</li><li style='margin:25px;'>文件系统&nbsp;</li><li style='margin:25px;'>存储空间&nbsp;</li></ul>存储Haystack&nbsp;部署在商业存储刀片服务器上，典型配置为一个2U的服务器，包含：<br /><ul style='list-style-type:disc'><li style='margin:25px;'>两个4核CPU&nbsp;</li><li style='margin:25px;'>16GB&nbsp;–&nbsp;32GB&nbsp;内存&nbsp;</li><li style='margin:25px;'>硬件&nbsp;RAID，含256-512M&nbsp;NVRAM&nbsp;高速缓存&nbsp;</li><li style='margin:25px;'>超过12个1TB&nbsp;SATA&nbsp;硬盘&nbsp;</li></ul>每个刀片服务器提供大约10TB的存储能力，使用了硬件&nbsp;RAID-6,&nbsp;RAID&nbsp;6在保持低成本的基础上实现了很好的性能和冗余。不佳的写性能可以通过高速缓存解决，硬盘缓存被禁用以防止断电损失。<br />文件系统Haystack&nbsp;对象库是建立在10TB容量的单一文件系统之上。文件系统中的每个文件都在一张区块表中对应具体的物理位置，目前使用的文件系统为&nbsp;XFS。<br />Haystack&nbsp;对象库Haystack&nbsp;是一个简单的日志结构，存储着其内部数据对象的指针。一个&nbsp;Haystack&nbsp;包括两个文件，包括指针和索引文件：<br /><wbr><a href='http://photos-f.ak.fbcdn.net/hphotos-ak-snc1/hs007.snc1/2837_78196427199_9445547199_1635581_602794_n.jpg' target='_blank'><img src="http://photos-f.ak.fbcdn.net/hphotos-ak-snc1/hs007.snc1/2837_78196427199_9445547199_1635581_602794_n.jpg" border='0'></a><wbr><br />Haystack&nbsp;对象存储结构<br /><wbr><a href='http://photos-h.ak.fbcdn.net/hphotos-ak-snc1/hs007.snc1/2837_78197177199_9445547199_1635583_2225071_n.jpg' target='_blank'><img src="http://photos-h.ak.fbcdn.net/hphotos-ak-snc1/hs007.snc1/2837_78197177199_9445547199_1635583_2225071_n.jpg" border='0'></a><wbr><br />指针和索引文件结构<br /><wbr><a href='http://photos-f.ak.fbcdn.net/hphotos-ak-snc1/hs007.snc1/2837_78197282199_9445547199_1635589_6418810_n.jpg' target='_blank'><img src="http://photos-f.ak.fbcdn.net/hphotos-ak-snc1/hs007.snc1/2837_78197282199_9445547199_1635589_6418810_n.jpg" border='0'></a><wbr><br /><wbr><a href='http://photos-h.ak.fbcdn.net/hphotos-ak-snc1/hs007.snc1/2837_78197377199_9445547199_1635591_5438325_n.jpg' target='_blank'><img src="http://photos-h.ak.fbcdn.net/hphotos-ak-snc1/hs007.snc1/2837_78197377199_9445547199_1635591_5438325_n.jpg" border='0'></a><wbr><br />Haystack&nbsp;写操作Haystack&nbsp;写操作同步将指针追加到&nbsp;haystack&nbsp;存储文件，当指针积累到一定程度，就会生成索引写到索引文件。为了降低硬件故障带来的损失，索引文件还会定期写道存储空间中。<br />Haystack&nbsp;读操作传到&nbsp;haystack&nbsp;读操作的参数包括指针的偏移量，key，代用Key,Cookie&nbsp;以及数据尺寸。Haystack&nbsp;于是根据数据尺寸从文件中读取整个指针。<br />Haystack&nbsp;删除操作删除比较简单，只是在&nbsp;Haystack&nbsp;存储的指针上设置一个已删除标志。已经删除的指针和索引的空间并不回收。<br />照片存储服务器照片存储服务器负责接受&nbsp;HTTP&nbsp;请求，并转换成相应的&nbsp;Haystack&nbsp;操作。为了降低I/O操作，该服务器维护着全部&nbsp;Haystack&nbsp;中文件索引的缓存。服务器启动时，系统就会将这些索引读到缓存中。由于每个节点都有数百万张照片，必须保证索引的容量不会超过服务器的物理内存。<br />对于用户上传的图片，系统分配一个64位的独立ID，照片接着被缩放成4种不同尺寸，每种尺寸的图拥有相同的随机&nbsp;Cookie&nbsp;&nbsp;和&nbsp;ID，图片尺寸描述（大，中，小，缩略图）被存在代用key&nbsp;中。接着上传服务器通知照片存储服务器将这些资料联通图片存储到&nbsp;haystack&nbsp;&nbsp;中。<br />每张图片的索引缓存包含以下数据<wbr><a href='http://photos-a.ak.fbcdn.net/hphotos-ak-snc1/hs007.snc1/2837_78197427199_9445547199_1635592_7527168_n.jpg' target='_blank'><img src="http://photos-a.ak.fbcdn.net/hphotos-ak-snc1/hs007.snc1/2837_78197427199_9445547199_1635592_7527168_n.jpg" border='0'></a><wbr><br />Haystack&nbsp;使用&nbsp;Google&nbsp;的开源&nbsp;&nbsp;sparse&nbsp;hash&nbsp;data&nbsp;结构以保证内存中的索引缓存尽可能小。<br />照片存储的写/修改操作写操作将照片数据写到&nbsp;Haystack&nbsp;存储并更新内存中的索引。如果索引中已经包含相同的&nbsp;Key，说明是修改操作。<br />照片存储的读操作传递到&nbsp;Haystack&nbsp;的参数包括&nbsp;Haystack&nbsp;ID，照片的&nbsp;Key,&nbsp;尺寸以及&nbsp;Cookie，服务器从缓存中查找并到&nbsp;Haystack&nbsp;中读取真正的数据。<br />照片存储的删除操作通知&nbsp;Haystack&nbsp;执行删除操作之后，内存中的索引缓存会被更新，将便宜量设置为0，表示照片已被删除。<br />重新捆扎重新捆扎会复制并建立新的&nbsp;Haystack，期间，略过那些已经删除的照片的数据，并重新建立内存中的索引缓存。<br />HTTP&nbsp;服务器Http&nbsp;框架使用的是简单的&nbsp;evhttp&nbsp;服务器。使用多线程，每个线程都可以单独处理一个&nbsp;&nbsp;HTTP&nbsp;请求。&nbsp;<br />结束语Haystack&nbsp;是一个基于&nbsp;HTTP&nbsp;的对象存储，包含指向实体数据的指针，该架构消除了文件系统元数据的开销，并实现将全部索引直接存储到缓存，以最小的&nbsp;I/O&nbsp;操作实现对照片的存储和读取。<br />本文国际来源：<a href="http://www.facebook.com/FacebookEngineering#/note.php?note_id=76191543919&amp;ref=mf" target="_blank">http://www.facebook.com/FacebookEngineering#/note.php?note_id=76191543919&amp;ref=mf</a><wbr><br />中文翻译来源：<a href="http://www.comsharp.com/" target="_blank">COMSHARP&nbsp;CMS</a><wbr>&nbsp;官方网站</div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/4299443920094194320712</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/4299443920094194320712</guid>
    <pubDate>Fri, 1 May 2009 21:43:20 +0800</pubDate>
    <dcterms:modified>2009-05-01T21:43:20+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[勇士成长实录 DNF编年史]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/42994439200932812451712</link>
    <description><![CDATA[<div><B><wbr><font color=#ffff00 style="line-height:1.3em">2005年8月10日..dnf公测。。。。</font><wbr></B><wbr><center><a href="http://image2.766.com/res/h002/h93/img200904021553350.jpg" target="_blank"><B><wbr><font color=#ffff00 style="line-height:1.3em"><wbr><a href='http://image2.766.com/res/h002/h93/img200904021553350.jpg' target='_blank'><img src="http://image2.766.com/res/h002/h93/img200904021553350.jpg" border='0'></a><wbr></font><wbr></B><wbr></a><wbr></center>&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.1魔女的游戏</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021549471.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021549471.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021549471.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*开放地下城-蜘蛛洞<br />&nbsp;&nbsp;*法师武器效果图变更<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.1外传大商人罗杰</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021549470.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021549470.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021549470.jpg" border='0'></a><wbr></a><wbr></center><br />&nbsp;&nbsp;*天空城入口处增加马车男和达芙妮<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.2世界战争</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021546281.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021546281.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021546281.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*开放战场地域<br />&nbsp;&nbsp;*满级上调至55<br />&nbsp;&nbsp;*开放时装交易<br /><br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.2外传召唤的盟约</font><wbr></B><wbr><br />&nbsp;&nbsp;*开放召唤师职业<br />&nbsp;&nbsp;*开放地下城-熔岩洞穴<br />&nbsp;&nbsp;Act.2外传2不屈的修炼<br />&nbsp;&nbsp;*开放时装合成系统<br />&nbsp;&nbsp;*开放第1套天空时装<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.3以我的名誉</font><wbr></B><wbr><br /><center><wbr><a href='http://image2.766.com/res/h002/h93/img200904021557300.jpg' target='_blank'><img src="http://image2.766.com/res/h002/h93/img200904021557300.jpg" border='0'></a><wbr></center>&nbsp;&nbsp;*开放散打/街霸觉醒<br />&nbsp;&nbsp;*粉色装备能力上调<br />&nbsp;&nbsp;*开放古代地下城<br />&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">&nbsp;Act.4神兽的转移</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021546280.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021546280.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021546280.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*开放气功/柔道觉醒<br />&nbsp;&nbsp;*开放地下城-黑妖精的墓地<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.5射击开始</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021549472.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021549472.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021549472.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*枪手职业改版<br />&nbsp;&nbsp;*开放地下城-山脊<br />&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.5外传抽签之王</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h002/h93/img200904021555180.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h002/h93/img200904021555180.jpg' target='_blank'><img src="http://image2.766.com/res/h002/h93/img200904021555180.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;*罐子兄弟登场<br />&nbsp;&nbsp;*开放大枪觉醒<br />&nbsp;&nbsp;*开放地下城-冰心<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.6地狱之门</font><wbr></B><wbr><br /><center></center>&nbsp;&nbsp;*开放HELL模式<br />&nbsp;&nbsp;*增加史诗武器<br />&nbsp;&nbsp;*开放第2套天空时装<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.7神之赐，我的祈祷...</font><wbr></B><wbr><br /><center></center>&nbsp;&nbsp;*开放大叔职业<br /><B><wbr><font color=#ffff00 style="line-height:1.3em">Act.7外传代号????</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021600120.jpg" target="_blank"><B><wbr><font color=#ffff00 style="line-height:1.3em"><wbr><a href='http://image2.766.com/res/h003/h04/img200904021600120.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021600120.jpg" border='0'></a><wbr></font><wbr></B><wbr></a><wbr></center>&nbsp;&nbsp;*开放机械觉醒<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.8黑暗中的绽放之花</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021546282.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021546282.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021546282.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*修正街霸<br />&nbsp;&nbsp;*开放弹药觉醒-将军<br />&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">&nbsp;Act.8外传在恶神周围</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021600122.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021600122.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021600122.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*开放职业-驱魔师<br />&nbsp;&nbsp;*不灭之王/牛武任务改版<br />&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.9关于魔法的一切</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h002/h93/img200904021611430.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h002/h93/img200904021611430.jpg' target='_blank'><img src="http://image2.766.com/res/h002/h93/img200904021611430.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;*法师改版<br />&nbsp;&nbsp;*增加了迷你地图按钮等<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.9外传300勇士</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021600121.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021600121.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021600121.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*工会会员上限上调至300<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.10鬼神疾走</font><wbr></B><wbr><br /><center><B><wbr><font color=#ffff00 style="line-height:1.3em"><a href="http://image2.766.com/res/h003/h04/img200904021546285.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021546285.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021546285.jpg" border='0'></a><wbr></a><wbr></font><wbr></B><wbr></center>&nbsp;&nbsp;*鬼剑职业改版<br />&nbsp;&nbsp;*开放地下城-悲鸣窟<br />&nbsp;&nbsp;*开放COF指数系统<br />&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.10外传死神的招待</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021615420.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021615420.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021615420.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;*开放死亡之塔<br />&nbsp;&nbsp;*开放远古系列任务<br />&nbsp;&nbsp;*开放街P系统<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.11征服者????</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021546283.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021546283.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021546283.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*开放召唤觉醒<br />&nbsp;&nbsp;*天空城地下城大幅度改版<br />&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">&nbsp;Act.11外传变·身</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021615421.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021615421.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021615421.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*开放力法觉醒<br />&nbsp;&nbsp;*开放地下城-肖像者迷宫<br />&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.12斩断命运的枷锁</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021615422.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021615422.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021615422.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*开放鬼剑觉醒<br />&nbsp;&nbsp;*开放附魔系统<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Act.12外传变得更强</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021546286.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021546286.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021546286.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*开放迷茫之塔<br />&nbsp;&nbsp;*追加亡者峡谷的任务<br />&nbsp;&nbsp;*格斗职业改版<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Season2开篇魔道学概论</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021600123.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021600123.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021600123.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*开放职业魔道学者<br />&nbsp;&nbsp;*雪山增加4个地下城-利库的天井，大猩猩，冰宫殿，冰龙<br />&nbsp;&nbsp;*开放综合决斗场（至尊以上可以进入，全服通用）<br />&nbsp;&nbsp;*开放每日限定任务<br />&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Season2Act.1Stylish#1</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021617570.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021617570.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021617570.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;<br /><br />&nbsp;&nbsp;*游戏界面改版<br />&nbsp;&nbsp;*技能使用快捷键释放时，CD时间/MP消耗减少<br />&nbsp;&nbsp;*武器平衡性改版<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Season2Act.1Stylish#2</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021546284.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021546284.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021546284.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*枪手第2次大幅度改版<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Season2Act.1Stylish#3</font><wbr></B><wbr><br /><center><wbr><a href='http://image2.766.com/res/h003/h04/img200904021617571.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021617571.jpg" border='0'></a><wbr></center>&nbsp;&nbsp;*开放女枪手职业<br />&nbsp;&nbsp;*增加1排技能栏<br />&nbsp;&nbsp;*塞拉店改版<br />&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Season2Act.1外传次元之隙</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021615423.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021615423.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021615423.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*开放异界地下城<br />&nbsp;&nbsp;*开放远古装备的强化/删除<br />&nbsp;&nbsp;*开放第2套远古装备<br />&nbsp;&nbsp;*开放55级装备<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Season2Act.1外传2再会</font><wbr></B><wbr><br /><center></center>&nbsp;&nbsp;*地下城等级大幅度调整，天界变更为满级地下城<br />&nbsp;&nbsp;*开放疲劳蓄电池系统<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Season2Act.2启示</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021615424.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021615424.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021615424.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;*大叔职业改版，开放觉醒<br />&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Season2Act.2外传摩根的日记</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h002/h93/img200904021620540.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h002/h93/img200904021620540.jpg' target='_blank'><img src="http://image2.766.com/res/h002/h93/img200904021620540.jpg" border='0'></a><wbr></a><wbr>&nbsp;&nbsp;&nbsp;</center>&nbsp;&nbsp;*古代地下城难度上调<br />&nbsp;&nbsp;*开放第4个古代地下城-诺伊佩拉<br />&nbsp;&nbsp;*开放55级粉色装备<br />&nbsp;&nbsp;<B><wbr><font color=#ffff00 style="line-height:1.3em">Season2Act.2外传2战场上的女神</font><wbr></B><wbr><br /><center><a href="http://image2.766.com/res/h003/h04/img200904021620541.jpg" target="_blank"><wbr></a><a href='http://image2.766.com/res/h003/h04/img200904021620541.jpg' target='_blank'><img src="http://image2.766.com/res/h003/h04/img200904021620541.jpg" border='0'></a><wbr></a><wbr></center>&nbsp;&nbsp;女枪职业全部觉醒<br />&nbsp;&nbsp;开放游戏内影像录制功能</div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/42994439200932812451712</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/42994439200932812451712</guid>
    <pubDate>Tue, 28 Apr 2009 01:24:51 +0800</pubDate>
    <dcterms:modified>2009-04-28T01:24:51+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[引用 ASP.NET里的上传图片处理(下)]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/429944392009321115152712</link>
    <description><![CDATA[<div><I><wbr>引用</I><wbr><br /><a href="http://blog.163.com/lhh_198791/" target="_blank"><font color=#758239 style="line-height:1.3em">环环</font><wbr></a><wbr>&nbsp;的&nbsp;<a href="http://blog.163.com/lhh_198791/blog/static/54004620075159319796" target="_blank"><font color=#758239 style="line-height:1.3em">ASP.NET里的上传图片处理(下)</font><wbr></a><wbr><br /><B><wbr>8.上传图片加水印(文字水印，图片水印，文字+图片水印)</B><wbr>&nbsp;<br /><B><wbr>效果图：<br />原图<wbr><a href='http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/289247/o_pic130.jpg' target='_blank'><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/289247/o_pic130.jpg" border='0'></a><wbr></B><wbr><br /><B><wbr>水印<wbr><a href='http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/289247/o_yyy.jpg' target='_blank'><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/289247/o_yyy.jpg" border='0'></a><wbr></B><wbr><br /><B><wbr>给图片加水印以后（注意右上角+正下方）<br /><wbr><a href='http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/289247/o_o_pic130.jpg_finally.jpg' target='_blank'><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/289247/o_o_pic130.jpg_finally.jpg" border='0'></a><wbr></B><wbr><br />代码：<br /><B><wbr><font color=#ff0000 style="line-height:1.3em">DrawImg.cs&nbsp;&nbsp;出自<a href="http://www.codeproject.com/csharp/watermark.asp" target="_blank"><font color=#758239 style="line-height:1.3em">http://www.codeproject.com/csharp/watermark.asp</font><wbr></a><wbr><br /></font><wbr></B><wbr>using&nbsp;System;<br />using&nbsp;System.Drawing;<br />using&nbsp;System.Drawing.Imaging;<br />using&nbsp;System.Drawing.Drawing2D;<br />public&nbsp;class&nbsp;DrawImg<br />{<br />&nbsp;private&nbsp;string&nbsp;&nbsp;WorkingDirectory&nbsp;=&nbsp;string.Empty&nbsp;;&nbsp;//路径<br />&nbsp;private&nbsp;string&nbsp;&nbsp;ImageName&nbsp;=&nbsp;string.Empty;&nbsp;&nbsp;&nbsp;//被处理的图片<br />&nbsp;private&nbsp;string&nbsp;&nbsp;ImageWater&nbsp;=&nbsp;string.Empty;&nbsp;&nbsp;//水印图片<br />&nbsp;private&nbsp;string&nbsp;&nbsp;FontString&nbsp;=&nbsp;string.Empty;&nbsp;&nbsp;//水印文字<br />&nbsp;enum&nbsp;DealType{NONE,WaterImage,WaterFont,DoubleDo};&nbsp;//枚举命令<br />&nbsp;private&nbsp;DealType&nbsp;dealtype;<br />&nbsp;public&nbsp;DrawImg()<br />&nbsp;{}<br />&nbsp;public&nbsp;string&nbsp;PublicWorkingDirectory<br />&nbsp;{<br />&nbsp;&nbsp;get<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;return&nbsp;WorkingDirectory;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;set<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;WorkingDirectory&nbsp;=&nbsp;value;<br />&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;public&nbsp;string&nbsp;PublicImageName<br />&nbsp;{<br />&nbsp;&nbsp;get<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;return&nbsp;ImageName;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;set<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;ImageName&nbsp;=&nbsp;value;<br />&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;public&nbsp;string&nbsp;PublicImageWater&nbsp;<br />&nbsp;{<br />&nbsp;&nbsp;get<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;return&nbsp;ImageWater;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;set&nbsp;&nbsp;//设置了水印图片的话说明是要水印图片效果的<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;dealtype&nbsp;=&nbsp;DealType.WaterImage;<br />&nbsp;&nbsp;&nbsp;ImageWater&nbsp;=&nbsp;value;<br />&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;public&nbsp;string&nbsp;PublicFontString<br />&nbsp;{<br />&nbsp;&nbsp;get<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;return&nbsp;FontString;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;set&nbsp;//设置了水印文字的话说明是要水印文字效果的<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;dealtype&nbsp;=&nbsp;DealType.WaterFont;<br />&nbsp;&nbsp;&nbsp;FontString&nbsp;=&nbsp;value;<br />&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;public&nbsp;void&nbsp;DealImage()<br />&nbsp;{<br />&nbsp;&nbsp;IsDouble();<br />&nbsp;&nbsp;switch(&nbsp;dealtype&nbsp;)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;case&nbsp;break;<br />&nbsp;&nbsp;&nbsp;case&nbsp;break;<br />&nbsp;&nbsp;&nbsp;case&nbsp;break;<br />&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;private&nbsp;void&nbsp;IsDouble()<br />&nbsp;{<br />&nbsp;&nbsp;if(ImageWater+&quot;&quot;!=&quot;&quot;&nbsp;&amp;&amp;&nbsp;FontString+&quot;&quot;!=&quot;&quot;)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dealtype&nbsp;=&nbsp;DealType.DoubleDo;<br />&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;private&nbsp;void&nbsp;WriteFont()<br />&nbsp;{<br />&nbsp;&nbsp;//set&nbsp;a&nbsp;working&nbsp;directory<br />&nbsp;&nbsp;//string&nbsp;WorkingDirectory&nbsp;=&nbsp;@&quot;C:\Watermark_src\WaterPic&quot;;<br />&nbsp;&nbsp;//define&nbsp;a&nbsp;string&nbsp;of&nbsp;text&nbsp;to&nbsp;use&nbsp;as&nbsp;the&nbsp;Copyright&nbsp;message<br />&nbsp;&nbsp;//string&nbsp;Copyright&nbsp;=&nbsp;&quot;Copyright&nbsp;?2002&nbsp;-&nbsp;AP&nbsp;Photo/David&nbsp;Zalubowski&quot;;<br />&nbsp;&nbsp;//create&nbsp;a&nbsp;image&nbsp;object&nbsp;containing&nbsp;the&nbsp;photograph&nbsp;to&nbsp;watermark<br />&nbsp;&nbsp;Image&nbsp;imgPhoto&nbsp;=&nbsp;Image.FromFile(WorkingDirectory&nbsp;+&nbsp;ImageName);<br />&nbsp;&nbsp;int&nbsp;phWidth&nbsp;=&nbsp;imgPhoto.Width;<br />&nbsp;&nbsp;int&nbsp;phHeight&nbsp;=&nbsp;imgPhoto.Height;<br />&nbsp;&nbsp;//create&nbsp;a&nbsp;Bitmap&nbsp;the&nbsp;Size&nbsp;of&nbsp;the&nbsp;original&nbsp;photograph<br />&nbsp;&nbsp;Bitmap&nbsp;bmPhoto&nbsp;=&nbsp;new&nbsp;Bitmap(phWidth,&nbsp;phHeight,&nbsp;PixelFormat.Format24bppRgb);<br />&nbsp;&nbsp;bmPhoto.SetResolution(imgPhoto.HorizontalResolution,&nbsp;imgPhoto.VerticalResolution);<br />&nbsp;&nbsp;//load&nbsp;the&nbsp;Bitmap&nbsp;into&nbsp;a&nbsp;Graphics&nbsp;object&nbsp;<br />&nbsp;&nbsp;Graphics&nbsp;grPhoto&nbsp;=&nbsp;Graphics.FromImage(bmPhoto);<br />&nbsp;&nbsp;//------------------------------------------------------------<br />&nbsp;&nbsp;//Step&nbsp;#1&nbsp;-&nbsp;Insert&nbsp;Copyright&nbsp;message<br />&nbsp;&nbsp;//------------------------------------------------------------<br />&nbsp;&nbsp;//Set&nbsp;the&nbsp;rendering&nbsp;quality&nbsp;for&nbsp;this&nbsp;Graphics&nbsp;object<br />&nbsp;&nbsp;grPhoto.SmoothingMode&nbsp;=&nbsp;SmoothingMode.AntiAlias;<br />&nbsp;&nbsp;//Draws&nbsp;the&nbsp;photo&nbsp;Image&nbsp;object&nbsp;at&nbsp;original&nbsp;size&nbsp;to&nbsp;the&nbsp;graphics&nbsp;object.<br />&nbsp;&nbsp;grPhoto.DrawImage(<br />&nbsp;&nbsp;&nbsp;imgPhoto,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Photo&nbsp;Image&nbsp;object<br />&nbsp;&nbsp;&nbsp;new&nbsp;Rectangle(0,&nbsp;0,&nbsp;phWidth,&nbsp;phHeight),&nbsp;//&nbsp;Rectangle&nbsp;structure<br />&nbsp;&nbsp;&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;x-coordinate&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;y-coordinate&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;phWidth,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Width&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;phHeight,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Height&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;GraphicsUnit.Pixel);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Units&nbsp;of&nbsp;measure&nbsp;<br />&nbsp;&nbsp;//-------------------------------------------------------<br />&nbsp;&nbsp;//to&nbsp;maximize&nbsp;the&nbsp;size&nbsp;of&nbsp;the&nbsp;Copyright&nbsp;message&nbsp;we&nbsp;will&nbsp;<br />&nbsp;&nbsp;//test&nbsp;multiple&nbsp;Font&nbsp;sizes&nbsp;to&nbsp;determine&nbsp;the&nbsp;largest&nbsp;posible&nbsp;<br />&nbsp;&nbsp;//font&nbsp;we&nbsp;can&nbsp;use&nbsp;for&nbsp;the&nbsp;width&nbsp;of&nbsp;the&nbsp;Photograph<br />&nbsp;&nbsp;//define&nbsp;an&nbsp;array&nbsp;of&nbsp;point&nbsp;sizes&nbsp;you&nbsp;would&nbsp;like&nbsp;to&nbsp;consider&nbsp;as&nbsp;possiblities<br />&nbsp;&nbsp;//-------------------------------------------------------<br />&nbsp;&nbsp;int[]&nbsp;sizes&nbsp;=&nbsp;new&nbsp;int[]{16,14,12,10,8,6,4};<br />&nbsp;&nbsp;Font&nbsp;crFont&nbsp;=&nbsp;null;<br />&nbsp;&nbsp;SizeF&nbsp;crSize&nbsp;=&nbsp;new&nbsp;SizeF();<br />&nbsp;&nbsp;//Loop&nbsp;through&nbsp;the&nbsp;defined&nbsp;sizes&nbsp;checking&nbsp;the&nbsp;length&nbsp;of&nbsp;the&nbsp;Copyright&nbsp;string<br />&nbsp;&nbsp;//If&nbsp;its&nbsp;length&nbsp;in&nbsp;pixles&nbsp;is&nbsp;less&nbsp;then&nbsp;the&nbsp;image&nbsp;width&nbsp;choose&nbsp;this&nbsp;Font&nbsp;size.<br />&nbsp;&nbsp;for&nbsp;(int&nbsp;i=0&nbsp;;i&lt;7;&nbsp;i++)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;//set&nbsp;a&nbsp;Font&nbsp;object&nbsp;to&nbsp;Arial&nbsp;(i)pt,&nbsp;Bold<br />&nbsp;&nbsp;&nbsp;//crFont&nbsp;=&nbsp;new&nbsp;Font(&quot;arial&quot;,&nbsp;sizes<I><wbr>,&nbsp;FontStyle.Bold);<br />&nbsp;&nbsp;&nbsp;crFont&nbsp;=&nbsp;new&nbsp;Font(&quot;arial&quot;,sizes<I><wbr>,FontStyle.Bold);<br />&nbsp;&nbsp;&nbsp;//Measure&nbsp;the&nbsp;Copyright&nbsp;string&nbsp;in&nbsp;this&nbsp;Font<br />&nbsp;&nbsp;&nbsp;crSize&nbsp;=&nbsp;grPhoto.MeasureString(FontString,&nbsp;crFont);<br />&nbsp;&nbsp;&nbsp;if((ushort)crSize.Width&nbsp;&lt;&nbsp;(ushort)phWidth)<br />&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;//Since&nbsp;all&nbsp;photographs&nbsp;will&nbsp;have&nbsp;varying&nbsp;heights,&nbsp;determine&nbsp;a&nbsp;<br />&nbsp;&nbsp;//position&nbsp;5%&nbsp;from&nbsp;the&nbsp;bottom&nbsp;of&nbsp;the&nbsp;image<br />&nbsp;&nbsp;int&nbsp;yPixlesFromBottom&nbsp;=&nbsp;(int)(phHeight&nbsp;*.05);<br />&nbsp;&nbsp;//Now&nbsp;that&nbsp;we&nbsp;have&nbsp;a&nbsp;point&nbsp;size&nbsp;use&nbsp;the&nbsp;Copyrights&nbsp;string&nbsp;height&nbsp;<br />&nbsp;&nbsp;//to&nbsp;determine&nbsp;a&nbsp;y-coordinate&nbsp;to&nbsp;draw&nbsp;the&nbsp;string&nbsp;of&nbsp;the&nbsp;photograph<br />&nbsp;&nbsp;float&nbsp;yPosFromBottom&nbsp;=&nbsp;((phHeight&nbsp;-&nbsp;yPixlesFromBottom)-(crSize.Height/2));<br />&nbsp;&nbsp;//Determine&nbsp;its&nbsp;x-coordinate&nbsp;by&nbsp;calculating&nbsp;the&nbsp;center&nbsp;of&nbsp;the&nbsp;width&nbsp;of&nbsp;the&nbsp;image<br />&nbsp;&nbsp;float&nbsp;xCenterOfImg&nbsp;=&nbsp;(phWidth/2);<br />&nbsp;&nbsp;//Define&nbsp;the&nbsp;text&nbsp;layout&nbsp;by&nbsp;setting&nbsp;the&nbsp;text&nbsp;alignment&nbsp;to&nbsp;centered<br />&nbsp;&nbsp;StringFormat&nbsp;StrFormat&nbsp;=&nbsp;new&nbsp;StringFormat();<br />&nbsp;&nbsp;StrFormat.Alignment&nbsp;=&nbsp;StringAlignment.Center;<br />&nbsp;&nbsp;//define&nbsp;a&nbsp;Brush&nbsp;which&nbsp;is&nbsp;semi&nbsp;trasparent&nbsp;black&nbsp;(Alpha&nbsp;set&nbsp;to&nbsp;153)<br />&nbsp;&nbsp;SolidBrush&nbsp;semiTransBrush2&nbsp;=&nbsp;new&nbsp;SolidBrush(Color.FromArgb(153,&nbsp;0,&nbsp;0,&nbsp;0));<br />&nbsp;&nbsp;//Draw&nbsp;the&nbsp;Copyright&nbsp;string<br />&nbsp;&nbsp;grPhoto.DrawString(FontString,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//string&nbsp;of&nbsp;text<br />&nbsp;&nbsp;&nbsp;crFont,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//font<br />&nbsp;&nbsp;&nbsp;semiTransBrush2,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Brush<br />&nbsp;&nbsp;&nbsp;new&nbsp;PointF(xCenterOfImg+1,yPosFromBottom+1),&nbsp;&nbsp;//Position<br />&nbsp;&nbsp;&nbsp;StrFormat);<br />&nbsp;&nbsp;//define&nbsp;a&nbsp;Brush&nbsp;which&nbsp;is&nbsp;semi&nbsp;trasparent&nbsp;white&nbsp;(Alpha&nbsp;set&nbsp;to&nbsp;153)<br />&nbsp;&nbsp;SolidBrush&nbsp;semiTransBrush&nbsp;=&nbsp;new&nbsp;SolidBrush(Color.FromArgb(153,&nbsp;255,&nbsp;255,&nbsp;255));<br />&nbsp;&nbsp;//Draw&nbsp;the&nbsp;Copyright&nbsp;string&nbsp;a&nbsp;second&nbsp;time&nbsp;to&nbsp;create&nbsp;a&nbsp;shadow&nbsp;effect<br />&nbsp;&nbsp;//Make&nbsp;sure&nbsp;to&nbsp;move&nbsp;this&nbsp;text&nbsp;1&nbsp;pixel&nbsp;to&nbsp;the&nbsp;right&nbsp;and&nbsp;down&nbsp;1&nbsp;pixel<br />&nbsp;&nbsp;grPhoto.DrawString(FontString,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//string&nbsp;of&nbsp;text<br />&nbsp;&nbsp;&nbsp;crFont,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//font<br />&nbsp;&nbsp;&nbsp;semiTransBrush,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Brush<br />&nbsp;&nbsp;&nbsp;new&nbsp;PointF(xCenterOfImg,yPosFromBottom),&nbsp;&nbsp;//Position<br />&nbsp;&nbsp;&nbsp;StrFormat);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;imgPhoto&nbsp;=&nbsp;bmPhoto;<br />&nbsp;&nbsp;grPhoto.Dispose();<br />&nbsp;&nbsp;//save&nbsp;new&nbsp;image&nbsp;to&nbsp;file&nbsp;system.<br />&nbsp;&nbsp;imgPhoto.Save(WorkingDirectory&nbsp;+&nbsp;ImageName&nbsp;+&nbsp;&quot;_finally.jpg&quot;,&nbsp;ImageFormat.Jpeg);<br />&nbsp;&nbsp;imgPhoto.Dispose();&nbsp;&nbsp;<br />&nbsp;&nbsp;//Text&nbsp;alignment<br />&nbsp;}<br />&nbsp;private&nbsp;void&nbsp;WriteImg()<br />&nbsp;{<br />&nbsp;&nbsp;//set&nbsp;a&nbsp;working&nbsp;directory<br />&nbsp;&nbsp;//string&nbsp;WorkingDirectory&nbsp;=&nbsp;@&quot;C:\Watermark_src\WaterPic&quot;;<br />&nbsp;&nbsp;//create&nbsp;a&nbsp;image&nbsp;object&nbsp;containing&nbsp;the&nbsp;photograph&nbsp;to&nbsp;watermark<br />&nbsp;&nbsp;Image&nbsp;imgPhoto&nbsp;=&nbsp;Image.FromFile(WorkingDirectory&nbsp;+&nbsp;ImageName);<br />&nbsp;&nbsp;int&nbsp;phWidth&nbsp;=&nbsp;imgPhoto.Width;<br />&nbsp;&nbsp;int&nbsp;phHeight&nbsp;=&nbsp;imgPhoto.Height;<br />&nbsp;&nbsp;//create&nbsp;a&nbsp;Bitmap&nbsp;the&nbsp;Size&nbsp;of&nbsp;the&nbsp;original&nbsp;photograph<br />&nbsp;&nbsp;Bitmap&nbsp;bmPhoto&nbsp;=&nbsp;new&nbsp;Bitmap(phWidth,&nbsp;phHeight,&nbsp;PixelFormat.Format24bppRgb);<br />&nbsp;&nbsp;bmPhoto.SetResolution(imgPhoto.HorizontalResolution,&nbsp;imgPhoto.VerticalResolution);<br />&nbsp;&nbsp;//load&nbsp;the&nbsp;Bitmap&nbsp;into&nbsp;a&nbsp;Graphics&nbsp;object&nbsp;<br />&nbsp;&nbsp;Graphics&nbsp;grPhoto&nbsp;=&nbsp;Graphics.FromImage(bmPhoto);<br />&nbsp;&nbsp;//create&nbsp;a&nbsp;image&nbsp;object&nbsp;containing&nbsp;the&nbsp;watermark<br />&nbsp;&nbsp;Image&nbsp;imgWatermark&nbsp;=&nbsp;new&nbsp;Bitmap(WorkingDirectory&nbsp;+&nbsp;ImageWater);<br />&nbsp;&nbsp;int&nbsp;wmWidth&nbsp;=&nbsp;imgWatermark.Width;<br />&nbsp;&nbsp;int&nbsp;wmHeight&nbsp;=&nbsp;imgWatermark.Height;<br />&nbsp;&nbsp;//Set&nbsp;the&nbsp;rendering&nbsp;quality&nbsp;for&nbsp;this&nbsp;Graphics&nbsp;object<br />&nbsp;&nbsp;grPhoto.SmoothingMode&nbsp;=&nbsp;SmoothingMode.AntiAlias;<br />&nbsp;&nbsp;//Draws&nbsp;the&nbsp;photo&nbsp;Image&nbsp;object&nbsp;at&nbsp;original&nbsp;size&nbsp;to&nbsp;the&nbsp;graphics&nbsp;object.<br />&nbsp;&nbsp;grPhoto.DrawImage(<br />&nbsp;&nbsp;&nbsp;imgPhoto,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Photo&nbsp;Image&nbsp;object<br />&nbsp;&nbsp;&nbsp;new&nbsp;Rectangle(0,&nbsp;0,&nbsp;phWidth,&nbsp;phHeight),&nbsp;//&nbsp;Rectangle&nbsp;structure<br />&nbsp;&nbsp;&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;x-coordinate&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;y-coordinate&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;phWidth,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Width&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;phHeight,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Height&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;GraphicsUnit.Pixel);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Units&nbsp;of&nbsp;measure&nbsp;<br />&nbsp;&nbsp;//------------------------------------------------------------<br />&nbsp;&nbsp;//Step&nbsp;#2&nbsp;-&nbsp;Insert&nbsp;Watermark&nbsp;image<br />&nbsp;&nbsp;//------------------------------------------------------------<br />&nbsp;&nbsp;//Create&nbsp;a&nbsp;Bitmap&nbsp;based&nbsp;on&nbsp;the&nbsp;previously&nbsp;modified&nbsp;photograph&nbsp;Bitmap<br />&nbsp;&nbsp;Bitmap&nbsp;bmWatermark&nbsp;=&nbsp;new&nbsp;Bitmap(bmPhoto);<br />&nbsp;&nbsp;bmWatermark.SetResolution(imgPhoto.HorizontalResolution,&nbsp;imgPhoto.VerticalResolution);<br />&nbsp;&nbsp;//Load&nbsp;this&nbsp;Bitmap&nbsp;into&nbsp;a&nbsp;new&nbsp;Graphic&nbsp;Object<br />&nbsp;&nbsp;Graphics&nbsp;grWatermark&nbsp;=&nbsp;Graphics.FromImage(bmWatermark);<br />&nbsp;&nbsp;//To&nbsp;achieve&nbsp;a&nbsp;transulcent&nbsp;watermark&nbsp;we&nbsp;will&nbsp;apply&nbsp;(2)&nbsp;color&nbsp;<br />&nbsp;&nbsp;//manipulations&nbsp;by&nbsp;defineing&nbsp;a&nbsp;ImageAttributes&nbsp;object&nbsp;and&nbsp;<br />&nbsp;&nbsp;//seting&nbsp;(2)&nbsp;of&nbsp;its&nbsp;properties.<br />&nbsp;&nbsp;ImageAttributes&nbsp;imageAttributes&nbsp;=&nbsp;new&nbsp;ImageAttributes();<br />&nbsp;&nbsp;//The&nbsp;first&nbsp;step&nbsp;in&nbsp;manipulating&nbsp;the&nbsp;watermark&nbsp;image&nbsp;is&nbsp;to&nbsp;replace&nbsp;<br />&nbsp;&nbsp;//the&nbsp;background&nbsp;color&nbsp;with&nbsp;on<wbr>e&nbsp;that&nbsp;is&nbsp;trasparent&nbsp;(Alpha=0,&nbsp;R=0,&nbsp;G=0,&nbsp;B=0)<br />&nbsp;&nbsp;//to&nbsp;do&nbsp;this&nbsp;we&nbsp;will&nbsp;use&nbsp;a&nbsp;Colormap&nbsp;and&nbsp;use&nbsp;this&nbsp;to&nbsp;define&nbsp;a&nbsp;RemapTable<br />&nbsp;&nbsp;ColorMap&nbsp;colorMap&nbsp;=&nbsp;new&nbsp;ColorMap();<br />&nbsp;&nbsp;//My&nbsp;watermark&nbsp;was&nbsp;defined&nbsp;with&nbsp;a&nbsp;background&nbsp;of&nbsp;100%&nbsp;Green&nbsp;this&nbsp;will<br />&nbsp;&nbsp;//be&nbsp;the&nbsp;color&nbsp;we&nbsp;search&nbsp;for&nbsp;and&nbsp;replace&nbsp;with&nbsp;transparency<br />&nbsp;&nbsp;colorMap.OldColor&nbsp;=&nbsp;Color.FromArgb(255,&nbsp;0,&nbsp;255,&nbsp;0);<br />&nbsp;&nbsp;colorMap.NewColor&nbsp;=&nbsp;Color.FromArgb(0,&nbsp;0,&nbsp;0,&nbsp;0);&nbsp;<br />&nbsp;&nbsp;ColorMap[]&nbsp;remapTable&nbsp;=&nbsp;{colorMap};<br />&nbsp;&nbsp;imageAttributes.SetRemapTable(remapTable,&nbsp;ColorAdjustType.Bitmap);<br />&nbsp;&nbsp;//The&nbsp;second&nbsp;color&nbsp;manipulation&nbsp;is&nbsp;used&nbsp;to&nbsp;change&nbsp;the&nbsp;opacity&nbsp;of&nbsp;the&nbsp;<br />&nbsp;&nbsp;//watermark.&nbsp;&nbsp;This&nbsp;is&nbsp;done&nbsp;by&nbsp;applying&nbsp;a&nbsp;5x5&nbsp;matrix&nbsp;that&nbsp;contains&nbsp;the&nbsp;<br />&nbsp;&nbsp;//coordinates&nbsp;for&nbsp;the&nbsp;RGBA&nbsp;space.&nbsp;&nbsp;By&nbsp;setting&nbsp;the&nbsp;3rd&nbsp;row&nbsp;and&nbsp;3rd&nbsp;column&nbsp;<br />&nbsp;&nbsp;//to&nbsp;0.3f&nbsp;we&nbsp;achive&nbsp;a&nbsp;level&nbsp;of&nbsp;opacity<br />&nbsp;&nbsp;float[][]&nbsp;colorMatrixElements&nbsp;=&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{1.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;0.0f},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{0.0f,&nbsp;&nbsp;1.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;0.0f},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;1.0f,&nbsp;&nbsp;0.0f,&nbsp;0.0f},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.3f,&nbsp;0.0f},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;1.0f}};&nbsp;<br />&nbsp;&nbsp;ColorMatrix&nbsp;wmColorMatrix&nbsp;=&nbsp;new&nbsp;ColorMatrix(colorMatrixElements);<br />&nbsp;&nbsp;imageAttributes.SetColorMatrix(wmColorMatrix,&nbsp;ColorMatrixFlag.Default,<br />&nbsp;&nbsp;&nbsp;ColorAdjustType.Bitmap);<br />&nbsp;&nbsp;//For&nbsp;this&nbsp;example&nbsp;we&nbsp;will&nbsp;place&nbsp;the&nbsp;watermark&nbsp;in&nbsp;the&nbsp;upper&nbsp;right<br />&nbsp;&nbsp;//hand&nbsp;corner&nbsp;of&nbsp;the&nbsp;photograph.&nbsp;offset&nbsp;down&nbsp;10&nbsp;pixels&nbsp;and&nbsp;to&nbsp;the&nbsp;<br />&nbsp;&nbsp;//left&nbsp;10&nbsp;pixles<br />&nbsp;&nbsp;int&nbsp;xPosOfWm&nbsp;=&nbsp;((phWidth&nbsp;-&nbsp;wmWidth)-10);<br />&nbsp;&nbsp;int&nbsp;yPosOfWm&nbsp;=&nbsp;10;<br />&nbsp;&nbsp;grWatermark.DrawImage(imgWatermark,&nbsp;<br />&nbsp;&nbsp;&nbsp;new&nbsp;Rectangle(xPosOfWm,yPosOfWm,wmWidth,wmHeight),&nbsp;&nbsp;//Set&nbsp;the&nbsp;detination&nbsp;Position<br />&nbsp;&nbsp;&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;x-coordinate&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;y-coordinate&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;wmWidth,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Watermark&nbsp;Width<br />&nbsp;&nbsp;&nbsp;wmHeight,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Watermark&nbsp;Height<br />&nbsp;&nbsp;&nbsp;GraphicsUnit.Pixel,&nbsp;//&nbsp;Unit&nbsp;of&nbsp;measurment<br />&nbsp;&nbsp;&nbsp;imageAttributes);&nbsp;&nbsp;&nbsp;//ImageAttributes&nbsp;Object<br />&nbsp;&nbsp;//Replace&nbsp;the&nbsp;original&nbsp;photgraphs&nbsp;bitmap&nbsp;with&nbsp;the&nbsp;new&nbsp;Bitmap<br />&nbsp;&nbsp;imgPhoto&nbsp;=&nbsp;bmWatermark;<br />&nbsp;&nbsp;grPhoto.Dispose();<br />&nbsp;&nbsp;grWatermark.Dispose();<br />&nbsp;&nbsp;//save&nbsp;new&nbsp;image&nbsp;to&nbsp;file&nbsp;system.<br />&nbsp;&nbsp;imgPhoto.Save(WorkingDirectory&nbsp;+&nbsp;ImageName&nbsp;+&quot;_finally.jpg&quot;,&nbsp;ImageFormat.Jpeg);<br />&nbsp;&nbsp;imgPhoto.Dispose();<br />&nbsp;&nbsp;imgWatermark.Dispose();<br />&nbsp;}<br />&nbsp;private&nbsp;void&nbsp;WriteFontAndImg()<br />&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;//create&nbsp;a&nbsp;image&nbsp;object&nbsp;containing&nbsp;the&nbsp;photograph&nbsp;to&nbsp;watermark<br />&nbsp;&nbsp;Image&nbsp;imgPhoto&nbsp;=&nbsp;Image.FromFile(WorkingDirectory&nbsp;+&nbsp;ImageName);<br />&nbsp;&nbsp;int&nbsp;phWidth&nbsp;=&nbsp;imgPhoto.Width;<br />&nbsp;&nbsp;int&nbsp;phHeight&nbsp;=&nbsp;imgPhoto.Height;<br />&nbsp;&nbsp;//create&nbsp;a&nbsp;Bitmap&nbsp;the&nbsp;Size&nbsp;of&nbsp;the&nbsp;original&nbsp;photograph<br />&nbsp;&nbsp;Bitmap&nbsp;bmPhoto&nbsp;=&nbsp;new&nbsp;Bitmap(phWidth,&nbsp;phHeight,&nbsp;PixelFormat.Format24bppRgb);<br />&nbsp;&nbsp;bmPhoto.SetResolution(imgPhoto.HorizontalResolution,&nbsp;imgPhoto.VerticalResolution);<br />&nbsp;&nbsp;//load&nbsp;the&nbsp;Bitmap&nbsp;into&nbsp;a&nbsp;Graphics&nbsp;object&nbsp;<br />&nbsp;&nbsp;Graphics&nbsp;grPhoto&nbsp;=&nbsp;Graphics.FromImage(bmPhoto);<br />&nbsp;&nbsp;//create&nbsp;a&nbsp;image&nbsp;object&nbsp;containing&nbsp;the&nbsp;watermark<br />&nbsp;&nbsp;Image&nbsp;imgWatermark&nbsp;=&nbsp;new&nbsp;Bitmap(WorkingDirectory&nbsp;+&nbsp;ImageWater);<br />&nbsp;&nbsp;int&nbsp;wmWidth&nbsp;=&nbsp;imgWatermark.Width;<br />&nbsp;&nbsp;int&nbsp;wmHeight&nbsp;=&nbsp;imgWatermark.Height;<br />&nbsp;&nbsp;//------------------------------------------------------------<br />&nbsp;&nbsp;//Step&nbsp;#1&nbsp;-&nbsp;Insert&nbsp;Copyright&nbsp;message<br />&nbsp;&nbsp;//------------------------------------------------------------<br />&nbsp;&nbsp;//Set&nbsp;the&nbsp;rendering&nbsp;quality&nbsp;for&nbsp;this&nbsp;Graphics&nbsp;object<br />&nbsp;&nbsp;grPhoto.SmoothingMode&nbsp;=&nbsp;SmoothingMode.AntiAlias;<br />&nbsp;&nbsp;//Draws&nbsp;the&nbsp;photo&nbsp;Image&nbsp;object&nbsp;at&nbsp;original&nbsp;size&nbsp;to&nbsp;the&nbsp;graphics&nbsp;object.<br />&nbsp;&nbsp;grPhoto.DrawImage(<br />&nbsp;&nbsp;&nbsp;imgPhoto,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Photo&nbsp;Image&nbsp;object<br />&nbsp;&nbsp;&nbsp;new&nbsp;Rectangle(0,&nbsp;0,&nbsp;phWidth,&nbsp;phHeight),&nbsp;//&nbsp;Rectangle&nbsp;structure<br />&nbsp;&nbsp;&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;x-coordinate&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;y-coordinate&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;phWidth,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Width&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;phHeight,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Height&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;GraphicsUnit.Pixel);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Units&nbsp;of&nbsp;measure&nbsp;<br />&nbsp;&nbsp;//-------------------------------------------------------<br />&nbsp;&nbsp;//to&nbsp;maximize&nbsp;the&nbsp;size&nbsp;of&nbsp;the&nbsp;Copyright&nbsp;message&nbsp;we&nbsp;will&nbsp;<br />&nbsp;&nbsp;//test&nbsp;multiple&nbsp;Font&nbsp;sizes&nbsp;to&nbsp;determine&nbsp;the&nbsp;largest&nbsp;posible&nbsp;<br />&nbsp;&nbsp;//font&nbsp;we&nbsp;can&nbsp;use&nbsp;for&nbsp;the&nbsp;width&nbsp;of&nbsp;the&nbsp;Photograph<br />&nbsp;&nbsp;//define&nbsp;an&nbsp;array&nbsp;of&nbsp;point&nbsp;sizes&nbsp;you&nbsp;would&nbsp;like&nbsp;to&nbsp;consider&nbsp;as&nbsp;possiblities<br />&nbsp;&nbsp;//-------------------------------------------------------<br />&nbsp;&nbsp;int[]&nbsp;sizes&nbsp;=&nbsp;new&nbsp;int[]{16,14,12,10,8,6,4};<br />&nbsp;&nbsp;Font&nbsp;crFont&nbsp;=&nbsp;null;<br />&nbsp;&nbsp;SizeF&nbsp;crSize&nbsp;=&nbsp;new&nbsp;SizeF();<br /><br />&nbsp;&nbsp;for&nbsp;(int&nbsp;i=0&nbsp;;i&lt;7;&nbsp;i++)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;//set&nbsp;a&nbsp;Font&nbsp;object&nbsp;to&nbsp;Arial&nbsp;(i)pt,&nbsp;Bold<br />&nbsp;&nbsp;&nbsp;crFont&nbsp;=&nbsp;new&nbsp;Font(&quot;arial&quot;,&nbsp;sizes<I><wbr>,&nbsp;FontStyle.Bold);<br />&nbsp;&nbsp;&nbsp;//Measure&nbsp;the&nbsp;Copyright&nbsp;string&nbsp;in&nbsp;this&nbsp;Font<br />&nbsp;&nbsp;&nbsp;crSize&nbsp;=&nbsp;grPhoto.MeasureString(FontString,&nbsp;crFont);<br />&nbsp;&nbsp;&nbsp;if((ushort)crSize.Width&nbsp;&lt;&nbsp;(ushort)phWidth)<br />&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;//Since&nbsp;all&nbsp;photographs&nbsp;will&nbsp;have&nbsp;varying&nbsp;heights,&nbsp;determine&nbsp;a&nbsp;<br />&nbsp;&nbsp;//position&nbsp;5%&nbsp;from&nbsp;the&nbsp;bottom&nbsp;of&nbsp;the&nbsp;image<br />&nbsp;&nbsp;int&nbsp;yPixlesFromBottom&nbsp;=&nbsp;(int)(phHeight&nbsp;*.05);<br />&nbsp;&nbsp;//Now&nbsp;that&nbsp;we&nbsp;have&nbsp;a&nbsp;point&nbsp;size&nbsp;use&nbsp;the&nbsp;Copyrights&nbsp;string&nbsp;height&nbsp;<br />&nbsp;&nbsp;//to&nbsp;determine&nbsp;a&nbsp;y-coordinate&nbsp;to&nbsp;draw&nbsp;the&nbsp;string&nbsp;of&nbsp;the&nbsp;photograph<br />&nbsp;&nbsp;float&nbsp;yPosFromBottom&nbsp;=&nbsp;((phHeight&nbsp;-&nbsp;yPixlesFromBottom)-(crSize.Height/2));<br />&nbsp;&nbsp;//Determine&nbsp;its&nbsp;x-coordinate&nbsp;by&nbsp;calculating&nbsp;the&nbsp;center&nbsp;of&nbsp;the&nbsp;width&nbsp;of&nbsp;the&nbsp;image<br />&nbsp;&nbsp;float&nbsp;xCenterOfImg&nbsp;=&nbsp;(phWidth/2);<br />&nbsp;&nbsp;//Define&nbsp;the&nbsp;text&nbsp;layout&nbsp;by&nbsp;setting&nbsp;the&nbsp;text&nbsp;alignment&nbsp;to&nbsp;centered<br />&nbsp;&nbsp;StringFormat&nbsp;StrFormat&nbsp;=&nbsp;new&nbsp;StringFormat();<br />&nbsp;&nbsp;StrFormat.Alignment&nbsp;=&nbsp;StringAlignment.Center;<br />&nbsp;&nbsp;//define&nbsp;a&nbsp;Brush&nbsp;which&nbsp;is&nbsp;semi&nbsp;trasparent&nbsp;black&nbsp;(Alpha&nbsp;set&nbsp;to&nbsp;153)<br />&nbsp;&nbsp;SolidBrush&nbsp;semiTransBrush2&nbsp;=&nbsp;new&nbsp;SolidBrush(Color.FromArgb(153,&nbsp;0,&nbsp;0,&nbsp;0));<br />&nbsp;&nbsp;//Draw&nbsp;the&nbsp;Copyright&nbsp;string<br />&nbsp;&nbsp;grPhoto.DrawString(FontString,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//string&nbsp;of&nbsp;text<br />&nbsp;&nbsp;&nbsp;crFont,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//font<br />&nbsp;&nbsp;&nbsp;semiTransBrush2,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Brush<br />&nbsp;&nbsp;&nbsp;new&nbsp;PointF(xCenterOfImg+1,yPosFromBottom+1),&nbsp;&nbsp;//Position<br />&nbsp;&nbsp;&nbsp;StrFormat);<br />&nbsp;&nbsp;//define&nbsp;a&nbsp;Brush&nbsp;which&nbsp;is&nbsp;semi&nbsp;trasparent&nbsp;white&nbsp;(Alpha&nbsp;set&nbsp;to&nbsp;153)<br />&nbsp;&nbsp;SolidBrush&nbsp;semiTransBrush&nbsp;=&nbsp;new&nbsp;SolidBrush(Color.FromArgb(153,&nbsp;255,&nbsp;255,&nbsp;255));<br />&nbsp;&nbsp;//Draw&nbsp;the&nbsp;Copyright&nbsp;string&nbsp;a&nbsp;second&nbsp;time&nbsp;to&nbsp;create&nbsp;a&nbsp;shadow&nbsp;effect<br />&nbsp;&nbsp;//Make&nbsp;sure&nbsp;to&nbsp;move&nbsp;this&nbsp;text&nbsp;1&nbsp;pixel&nbsp;to&nbsp;the&nbsp;right&nbsp;and&nbsp;down&nbsp;1&nbsp;pixel<br />&nbsp;&nbsp;grPhoto.DrawString(FontString,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//string&nbsp;of&nbsp;text<br />&nbsp;&nbsp;&nbsp;crFont,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//font<br />&nbsp;&nbsp;&nbsp;semiTransBrush,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Brush<br />&nbsp;&nbsp;&nbsp;new&nbsp;PointF(xCenterOfImg,yPosFromBottom),&nbsp;&nbsp;//Position<br />&nbsp;&nbsp;&nbsp;StrFormat);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Text&nbsp;alignment<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;//------------------------------------------------------------<br />&nbsp;&nbsp;//Step&nbsp;#2&nbsp;-&nbsp;Insert&nbsp;Watermark&nbsp;image<br /><br />&nbsp;&nbsp;Bitmap&nbsp;bmWatermark&nbsp;=&nbsp;new&nbsp;Bitmap(bmPhoto);<br />&nbsp;&nbsp;bmWatermark.SetResolution(imgPhoto.HorizontalResolution,&nbsp;imgPhoto.VerticalResolution);<br /><br />&nbsp;&nbsp;Graphics&nbsp;grWatermark&nbsp;=&nbsp;Graphics.FromImage(bmWatermark);<br />&nbsp;&nbsp;&nbsp;&nbsp;ImageAttributes&nbsp;imageAttributes&nbsp;=&nbsp;new&nbsp;ImageAttributes();<br /><br />&nbsp;&nbsp;ColorMap&nbsp;colorMap&nbsp;=&nbsp;new&nbsp;ColorMap();<br />&nbsp;&nbsp;//My&nbsp;watermark&nbsp;was&nbsp;defined&nbsp;with&nbsp;a&nbsp;background&nbsp;of&nbsp;100%&nbsp;Green&nbsp;this&nbsp;will<br />&nbsp;&nbsp;//be&nbsp;the&nbsp;color&nbsp;we&nbsp;search&nbsp;for&nbsp;and&nbsp;replace&nbsp;with&nbsp;transparency<br />&nbsp;&nbsp;colorMap.OldColor&nbsp;=&nbsp;Color.FromArgb(255,&nbsp;0,&nbsp;255,&nbsp;0);<br />&nbsp;&nbsp;colorMap.NewColor&nbsp;=&nbsp;Color.FromArgb(0,&nbsp;0,&nbsp;0,&nbsp;0);&nbsp;<br />&nbsp;&nbsp;ColorMap[]&nbsp;remapTable&nbsp;=&nbsp;{colorMap};<br />&nbsp;&nbsp;imageAttributes.SetRemapTable(remapTable,&nbsp;ColorAdjustType.Bitmap);<br />&nbsp;&nbsp;float[][]&nbsp;colorMatrixElements&nbsp;=&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{1.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;0.0f},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{0.0f,&nbsp;&nbsp;1.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;0.0f},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;1.0f,&nbsp;&nbsp;0.0f,&nbsp;0.0f},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.3f,&nbsp;0.0f},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;1.0f}};&nbsp;<br />&nbsp;&nbsp;ColorMatrix&nbsp;wmColorMatrix&nbsp;=&nbsp;new&nbsp;ColorMatrix(colorMatrixElements);<br />&nbsp;&nbsp;imageAttributes.SetColorMatrix(wmColorMatrix,&nbsp;ColorMatrixFlag.Default,<br />&nbsp;&nbsp;&nbsp;ColorAdjustType.Bitmap);<br />&nbsp;<br />&nbsp;&nbsp;int&nbsp;xPosOfWm&nbsp;=&nbsp;((phWidth&nbsp;-&nbsp;wmWidth)-10);<br />&nbsp;&nbsp;int&nbsp;yPosOfWm&nbsp;=&nbsp;10;<br />&nbsp;&nbsp;grWatermark.DrawImage(imgWatermark,&nbsp;<br />&nbsp;&nbsp;&nbsp;new&nbsp;Rectangle(xPosOfWm,yPosOfWm,wmWidth,wmHeight),&nbsp;&nbsp;//Set&nbsp;the&nbsp;detination&nbsp;Position<br />&nbsp;&nbsp;&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;x-coordinate&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;y-coordinate&nbsp;of&nbsp;the&nbsp;portion&nbsp;of&nbsp;the&nbsp;source&nbsp;image&nbsp;to&nbsp;draw.&nbsp;<br />&nbsp;&nbsp;&nbsp;wmWidth,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Watermark&nbsp;Width<br />&nbsp;&nbsp;&nbsp;wmHeight,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Watermark&nbsp;Height<br />&nbsp;&nbsp;&nbsp;GraphicsUnit.Pixel,&nbsp;//&nbsp;Unit&nbsp;of&nbsp;measurment<br />&nbsp;&nbsp;&nbsp;imageAttributes);&nbsp;&nbsp;&nbsp;//ImageAttributes&nbsp;Object<br />&nbsp;&nbsp;imgPhoto&nbsp;=&nbsp;bmWatermark;<br />&nbsp;&nbsp;grPhoto.Dispose();<br />&nbsp;&nbsp;grWatermark.Dispose();<br />&nbsp;&nbsp;imgPhoto.Save(WorkingDirectory&nbsp;+&nbsp;ImageName&nbsp;+&quot;_finally.jpg&quot;,&nbsp;ImageFormat.Jpeg);<br />&nbsp;&nbsp;imgPhoto.Dispose();<br />&nbsp;&nbsp;imgWatermark.Dispose();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;}<br />}<br /><br />&nbsp;//水印图片加水印文字<br />//&nbsp;&nbsp;&nbsp;ReDrawImg&nbsp;img&nbsp;=&nbsp;new&nbsp;ReDrawImg();<br />//&nbsp;&nbsp;&nbsp;img&nbsp;.PublicWorkingDirectory&nbsp;=&nbsp;@&quot;C:\Watermark_src\WaterPic\&quot;;<br />//&nbsp;&nbsp;&nbsp;img&nbsp;.PublicImageName&nbsp;=&nbsp;&quot;watermark_photo.jpg&quot;;<br />//&nbsp;&nbsp;&nbsp;img&nbsp;.PublicImageWater&nbsp;=&nbsp;&quot;watermark.bmp&quot;;<br />//&nbsp;&nbsp;&nbsp;img&nbsp;.PublicFontString&nbsp;=&nbsp;&quot;清清月儿&quot;;<br />//&nbsp;&nbsp;&nbsp;img&nbsp;.DealImage();&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;//水印文字<br />&nbsp;&nbsp;&nbsp;ReDrawImg&nbsp;img&nbsp;=&nbsp;new&nbsp;ReDrawImg();<br />&nbsp;&nbsp;&nbsp;img&nbsp;.PublicWorkingDirectory&nbsp;=&nbsp;@&quot;C:\Watermark_src\WaterPic\&quot;;<br />&nbsp;&nbsp;&nbsp;img&nbsp;.PublicImageName&nbsp;=&nbsp;&quot;watermark_photo.jpg&quot;;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;img&nbsp;.PublicFontString&nbsp;=&nbsp;@&quot;清清月儿&quot;;<br />&nbsp;&nbsp;&nbsp;img&nbsp;.DealImage();<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;//水印图片<br />//&nbsp;&nbsp;&nbsp;ReDrawImg&nbsp;img&nbsp;=&nbsp;new&nbsp;ReDrawImg();<br />//&nbsp;&nbsp;&nbsp;img&nbsp;.PublicWorkingDirectory&nbsp;=&nbsp;@&quot;C:\Watermark_src\WaterPic\&quot;;<br />//&nbsp;&nbsp;&nbsp;img&nbsp;.PublicImageName&nbsp;=&nbsp;&quot;watermark_photo.jpg&quot;;<br />//&nbsp;&nbsp;&nbsp;img&nbsp;.PublicImageWater&nbsp;=&nbsp;&quot;watermark.bmp&quot;;&nbsp;&nbsp;&nbsp;<br />//&nbsp;&nbsp;&nbsp;img&nbsp;.DealImage();&nbsp;<br /><B><wbr>后台代码：</B><wbr><br /><br />using&nbsp;System;<br />using&nbsp;System.Data;<br />using&nbsp;System.Configuration;<br />using&nbsp;System.Collections;<br />using&nbsp;System.Web;<br />using&nbsp;System.Web.Security;<br />using&nbsp;System.Web.UI;<br />using&nbsp;System.Web.UI.WebControls;<br />using&nbsp;System.Web.UI.WebControls.WebParts;<br />using&nbsp;System.Web.UI.HtmlControls;<br />public&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;Page_Load(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;bt_upload_Click(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(FileUpload1.PostedFile.FileName&nbsp;==&nbsp;&quot;&quot;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;请选择文件！&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filepath&nbsp;=&nbsp;FileUpload1.PostedFile.FileName;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filename&nbsp;=&nbsp;filepath.Substring(filepath.LastIndexOf(&quot;\\&quot;)&nbsp;+&nbsp;1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;serverpath1&nbsp;=&nbsp;Server.MapPath(&quot;images/&quot;)&nbsp;+&nbsp;filename;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//string&nbsp;serverpath2&nbsp;=&nbsp;Server.MapPath(&quot;images/&quot;)&nbsp;+&nbsp;System.DateTime.Now.ToString(&quot;yyy-MM-dd-hh-mm-ss&quot;)&nbsp;+&nbsp;Session.SessionID&nbsp;+&nbsp;filename;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileUpload1.PostedFile.SaveAs(serverpath1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//ImageThumbnail&nbsp;img&nbsp;=&nbsp;new&nbsp;ImageThumbnail(filepath);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//img.ReducedImage(0.4,&nbsp;serverpath2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DrawImg&nbsp;img&nbsp;=&nbsp;new&nbsp;DrawImg();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;img.PublicWorkingDirectory&nbsp;=&nbsp;Server.MapPath(&quot;images/&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;img.PublicImageName&nbsp;=&nbsp;filename;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;img.PublicFontString&nbsp;=&nbsp;&quot;http://blog.csdn.net/21aspnet&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;img.PublicImageWater&nbsp;=&nbsp;&quot;yyy.jpg&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;img.DealImage();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;上传成功！&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;error)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;上传发生错误！原因：&quot;&nbsp;+&nbsp;error.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</I></I></I></div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/429944392009321115152712</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/429944392009321115152712</guid>
    <pubDate>Tue, 21 Apr 2009 11:51:52 +0800</pubDate>
    <dcterms:modified>2009-06-17T16:06:54+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[引用 ASP.NET里的上传图片处理(上)]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/429944392009321114447712</link>
    <description><![CDATA[<div><I><wbr>引用</I><wbr><br /><a href="http://blog.163.com/lhh_198791/" target="_blank"><font color=#758239 style="line-height:1.3em">环环</font><wbr></a><wbr>&nbsp;的&nbsp;<a href="http://blog.163.com/lhh_198791/blog/static/54004620075159126156" target="_blank"><font color=#758239 style="line-height:1.3em">ASP.NET里的上传图片处理(上)</font><wbr></a><wbr><br /><center><font color=#ff00ff size=5 style="line-height:1.3em">ASP.NET2.0打通文件图片处理任督二脉</font><wbr></center>作者：清清月儿&nbsp;<br />主页：<a href="http://blog.csdn.net/21aspnet/" target="_blank"><font color=#758239 style="line-height:1.3em">http://blog.csdn.net/21aspnet/</font><wbr></a><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;时间：2007.4.1<br />1.最简单的单文件上传(没花头)<br />2.多文件上传<br />3.客户端检查上传文件类型(以上传图片为例)<br />4.服务器端检查上传文件类型(以上传图片为例)&nbsp;<br />5.服务器端检查上传文件类型(可以检测真正文件名)&nbsp;<br />6.上传文件文件名唯一性处理(时间戳+SessionID)<br />7.上传图片生成等比例缩略图<br />8.上传图片加水印(文字水印，图片水印，文字+图片水印)<br />-------------------------------------------------------------------<br />1.最简单的单文件上传(没花头)<br />效果图：<br /><wbr><a href='http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/286353/o_f1.gif' target='_blank'><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/286353/o_f1.gif" border='0'></a><wbr><br />说明：这是最基本的文件上传，在asp.net1.x中没有这个FileUpload控件，只有html的上传控件，那时候要把html控件转化为服务器控件，很不好用。其实所有文件上传的美丽效果都是从这个FileUpload控件衍生，第一个例子虽然简单却是根本。<br />后台代码：<br />using&nbsp;System;<br />using&nbsp;System.Data;<br />using&nbsp;System.Configuration;<br />using&nbsp;System.Collections;<br />using&nbsp;System.Web;<br />using&nbsp;System.Web.Security;<br />using&nbsp;System.Web.UI;<br />using&nbsp;System.Web.UI.WebControls;<br />using&nbsp;System.Web.UI.WebControls.WebParts;<br />using&nbsp;System.Web.UI.HtmlControls;<br />public&nbsp;partial&nbsp;class&nbsp;_Default&nbsp;:&nbsp;System.Web.UI.Page<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;Page_Load(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;bt_upload_Click(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(FileUpload1.PostedFile.FileName&nbsp;==&nbsp;&quot;&quot;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;请选择文件！&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filepath&nbsp;=&nbsp;FileUpload1.PostedFile.FileName;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filename&nbsp;=&nbsp;filepath.Substring(filepath.LastIndexOf(&quot;\\&quot;)&nbsp;+&nbsp;1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;serverpath&nbsp;=&nbsp;Server.MapPath(&quot;images/&quot;)&nbsp;+&nbsp;filename;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileUpload1.PostedFile.SaveAs(serverpath);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;上传成功！&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;ex)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;上传发生错误！原因是：&quot;&nbsp;+&nbsp;ex.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />前台代码：<br />&nbsp;&lt;table&nbsp;style=&quot;width:&nbsp;343px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;单文件上传&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:FileUpload&nbsp;runat=&quot;server&quot;&nbsp;Width=&quot;475px&quot;&nbsp;/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:Button&nbsp;runat=&quot;server&quot;&nbsp;Text=&quot;上传&quot;&nbsp;/&gt;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px;&nbsp;height:&nbsp;21px;&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:Label&nbsp;runat=&quot;server&quot;&nbsp;ForeColor=&quot;Red&quot;&nbsp;Width=&quot;183px&quot;&gt;&lt;/asp:Label&gt;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px;&nbsp;height:&nbsp;21px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br />2.多文件上传<br />效果图：<br /><wbr><a href='http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/286353/o_f2.gif' target='_blank'><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/286353/o_f2.gif" border='0'></a><wbr><br />后台代码：<br />using&nbsp;System;<br />using&nbsp;System.Data;<br />using&nbsp;System.Configuration;<br />using&nbsp;System.Collections;<br />using&nbsp;System.Web;<br />using&nbsp;System.Web.Security;<br />using&nbsp;System.Web.UI;<br />using&nbsp;System.Web.UI.WebControls;<br />using&nbsp;System.Web.UI.WebControls.WebParts;<br />using&nbsp;System.Web.UI.HtmlControls;<br />public&nbsp;partial&nbsp;class&nbsp;_Default&nbsp;:&nbsp;System.Web.UI.Page<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;Page_Load(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;bt_upload_Click(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((FileUpload1.PostedFile.FileName&nbsp;==&nbsp;&quot;&quot;&nbsp;&amp;&amp;&nbsp;FileUpload2.PostedFile.FileName&nbsp;==&nbsp;&quot;&quot;)&amp;&amp;FileUpload3.PostedFile.FileName&nbsp;==&nbsp;&quot;&quot;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;请选择文件！&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpFileCollection&nbsp;myfiles&nbsp;=&nbsp;Request.Files;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;myfiles.Count;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpPostedFile&nbsp;mypost&nbsp;=&nbsp;myfiles<I><wbr>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(mypost.ContentLength&nbsp;&gt;&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filepath&nbsp;=&nbsp;mypost.FileName;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filename&nbsp;=&nbsp;filepath.Substring(filepath.LastIndexOf(&quot;\\&quot;)&nbsp;+&nbsp;1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;serverpath&nbsp;=&nbsp;Server.MapPath(&quot;images/&quot;)&nbsp;+&nbsp;filename;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mypost.SaveAs(serverpath);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;上传成功！&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;error)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;上传发生错误！原因：&quot;&nbsp;+&nbsp;error.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />前台代码：<br />&nbsp;&lt;%@&nbsp;Page&nbsp;Language=&quot;C#&quot;&nbsp;AutoEventWireup=&quot;true&quot;&nbsp;CodeFile=&quot;Default.aspx.cs&quot;&nbsp;Inherits=&quot;_Default&quot;&nbsp;%&gt;<br />&lt;!DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;&quot;-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN&quot;&nbsp;&quot;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank"><font color=#758239 style="line-height:1.3em">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</font><wbr></a><wbr>&quot;&gt;<br />&lt;html&nbsp;xmlns=&quot;<a href="http://www.w3.org/1999/xhtml" target="_blank"><font color=#758239 style="line-height:1.3em">http://www.w3.org/1999/xhtml</font><wbr></a><wbr>&quot;&nbsp;&gt;<br />&lt;head&nbsp;runat=&quot;server&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;多文件上传&nbsp;清清月儿http://blog.csdn.net/21aspnet/&lt;/title&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;form&nbsp;runat=&quot;server&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;table&nbsp;style=&quot;width:&nbsp;343px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;多文件上传&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:FileUpload&nbsp;runat=&quot;server&quot;&nbsp;Width=&quot;475px&quot;&nbsp;/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:FileUpload&nbsp;runat=&quot;server&quot;&nbsp;Width=&quot;475px&quot;&nbsp;/&gt;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:FileUpload&nbsp;runat=&quot;server&quot;&nbsp;Width=&quot;475px&quot;&nbsp;/&gt;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:Button&nbsp;runat=&quot;server&quot;&nbsp;Text=&quot;一起上传&quot;&nbsp;/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:Label&nbsp;runat=&quot;server&quot;&nbsp;ForeColor=&quot;Red&quot;&nbsp;Width=&quot;183px&quot;&gt;&lt;/asp:Label&gt;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/form&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;<br />3.客户端检查上传文件类型(以上传图片为例)<br />效果图：<br /><wbr><a href='http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/286353/o_f3.gif' target='_blank'><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/286353/o_f3.gif" border='0'></a><wbr><br />后台代码和1.最简单的单文件上传一样；<br />前台代码：<br />&lt;%@&nbsp;Page&nbsp;Language=&quot;C#&quot;&nbsp;AutoEventWireup=&quot;true&quot;&nbsp;CodeFile=&quot;Default.aspx.cs&quot;&nbsp;Inherits=&quot;_Default&quot;&nbsp;%&gt;<br />&lt;!DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;&quot;-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN&quot;&nbsp;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;<br />&lt;html&nbsp;xmlns=http://www.w3.org/1999/xhtml&gt;<br />&lt;head&nbsp;runat=&quot;server&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;清清月儿&nbsp;&lt;title&gt;&nbsp;<br />&lt;<br />&nbsp;function&nbsp;Check_FileType()<br />{<br />var&nbsp;str=document.getElementById(&quot;FileUpload1&quot;).value;<br />&nbsp;var&nbsp;pos&nbsp;=&nbsp;str.lastIndexOf(&quot;.&quot;);<br />&nbsp;var&nbsp;lastname&nbsp;=&nbsp;str.substring(pos,str.length)&nbsp;&nbsp;<br />&nbsp;if&nbsp;(lastname.toLowerCase()!=&quot;.jpg&quot;&nbsp;&amp;&amp;&nbsp;lastname.toLowerCase()!=&quot;.gif&quot;)<br />&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(&quot;您上传的文件类型为&quot;+lastname+&quot;，图片必须为.jpg,.gif类型&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />&nbsp;}<br />&nbsp;else&nbsp;<br />&nbsp;{<br />&nbsp;&nbsp;return&nbsp;true;<br />&nbsp;}<br />}&nbsp;<br />&nbsp;&lt;/script&gt;&nbsp;&nbsp;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;form&nbsp;runat=&quot;server&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;table&nbsp;style=&quot;width:&nbsp;343px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;104px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;文件上传判断&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;104px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:FileUpload&nbsp;runat=&quot;server&quot;&nbsp;Width=&quot;400px&quot;&nbsp;/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:Button&nbsp;runat=&quot;server&quot;&nbsp;Text=&quot;上传&quot;&nbsp;&nbsp;OnClientClick=&quot;return&nbsp;Check_FileType()&quot;/&gt;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;104px;&nbsp;height:&nbsp;21px;&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:Label&nbsp;runat=&quot;server&quot;&nbsp;ForeColor=&quot;Red&quot;&nbsp;Width=&quot;183px&quot;&gt;&lt;/asp:Label&gt;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;style=&quot;width:&nbsp;100px;&nbsp;height:&nbsp;21px&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/form&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;<br />说明：点击上传时先触发客户端事件Check_FileType；<br />4.服务器端检查上传文件类型(以上传图片为例)<br />效果图：<br /><wbr><a href='http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/286353/o_f4.gif' target='_blank'><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/286353/o_f4.gif" border='0'></a><wbr><br />后台代码：<br />using&nbsp;System;<br />using&nbsp;System.Data;<br />using&nbsp;System.Configuration;<br />using&nbsp;System.Collections;<br />using&nbsp;System.Web;<br />using&nbsp;System.Web.Security;<br />using&nbsp;System.Web.UI;<br />using&nbsp;System.Web.UI.WebControls;<br />using&nbsp;System.Web.UI.WebControls.WebParts;<br />using&nbsp;System.Web.UI.HtmlControls;<br />public&nbsp;partial&nbsp;class&nbsp;_Default&nbsp;:&nbsp;System.Web.UI.Page<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;Page_Load(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;bt_upload_Click(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(FileUpload1.PostedFile.FileName&nbsp;==&nbsp;&quot;&quot;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;请选择文件！&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filepath&nbsp;=&nbsp;FileUpload1.PostedFile.FileName;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(IsAllowedExtension(FileUpload1)&nbsp;==&nbsp;true)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filename&nbsp;=&nbsp;filepath.Substring(filepath.LastIndexOf(&quot;\\&quot;)&nbsp;+&nbsp;1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;serverpath&nbsp;=&nbsp;Server.MapPath(&quot;images/&quot;)&nbsp;+&nbsp;filename;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileUpload1.PostedFile.SaveAs(serverpath);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;上传成功！&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;请上传图片&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;error)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;上传发生错误！原因：&quot;&nbsp;+&nbsp;error.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;bool&nbsp;IsAllowedExtension(FileUpload&nbsp;hifile)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;strOldFilePath&nbsp;=&nbsp;&quot;&quot;,&nbsp;strExtension&nbsp;=&nbsp;&quot;&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string[]&nbsp;arrExtension&nbsp;=&nbsp;&nbsp;&nbsp;{&nbsp;&quot;.gif&quot;,&nbsp;&quot;.jpg&quot;,&nbsp;&quot;.jpeg&quot;,&nbsp;&quot;.bmp&quot;,&nbsp;&quot;.png&quot;&nbsp;};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(hifile.PostedFile.FileName&nbsp;!=&nbsp;string.Empty)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strOldFilePath&nbsp;=&nbsp;hifile.PostedFile.FileName;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strExtension&nbsp;=&nbsp;strOldFilePath.Substring(strOldFilePath.LastIndexOf(&quot;.&quot;));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;arrExtension.Length;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(strExtension.Equals(arrExtension<I><wbr>))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />}<br />&nbsp;5.服务器端检查上传文件类型(可以检测真正文件名)&nbsp;<br />其实方法4并不好，因为用户可以把XXX.txt伪装为XXX.jpg。<br />效果图：<br /><wbr><a href='http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/286353/o_f5.gif' target='_blank'><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/286353/o_f5.gif" border='0'></a><wbr><br />后台代码：<br />using&nbsp;System;<br />using&nbsp;System.Data;<br />using&nbsp;System.Configuration;<br />using&nbsp;System.Collections;<br />using&nbsp;System.Web;<br />using&nbsp;System.Web.Security;<br />using&nbsp;System.Web.UI;<br />using&nbsp;System.Web.UI.WebControls;<br />using&nbsp;System.Web.UI.WebControls.WebParts;<br />using&nbsp;System.Web.UI.HtmlControls;<br />public&nbsp;partial&nbsp;class&nbsp;_Default&nbsp;:&nbsp;System.Web.UI.Page<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;//清清月儿&nbsp;http://blog.csdn.net/21aspnet<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;Page_Load(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;bt_upload_Click(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(FileUpload1.PostedFile.FileName&nbsp;==&nbsp;&quot;&quot;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;请选择文件！&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filepath&nbsp;=&nbsp;FileUpload1.PostedFile.FileName;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(IsAllowedExtension(FileUpload1)&nbsp;==&nbsp;true)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filename&nbsp;=&nbsp;filepath.Substring(filepath.LastIndexOf(&quot;\\&quot;)&nbsp;+&nbsp;1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;serverpath&nbsp;=&nbsp;Server.MapPath(&quot;images/&quot;)&nbsp;+&nbsp;filename;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileUpload1.PostedFile.SaveAs(serverpath);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;上传成功！&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;请上传图片&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;error)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;上传发生错误！原因：&quot;&nbsp;+&nbsp;error.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;bool&nbsp;IsAllowedExtension(FileUpload&nbsp;hifile)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.IO.FileStream&nbsp;fs&nbsp;=&nbsp;new&nbsp;System.IO.FileStream(hifile.PostedFile.FileName,&nbsp;System.IO.FileMode.Open,&nbsp;System.IO.FileAccess.Read);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.IO.BinaryReader&nbsp;r&nbsp;=&nbsp;new&nbsp;System.IO.BinaryReader(fs);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;fileclass&nbsp;=&nbsp;&quot;&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byte&nbsp;buffer;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer&nbsp;=&nbsp;r.ReadByte();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileclass&nbsp;=&nbsp;buffer.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer&nbsp;=&nbsp;r.ReadByte();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileclass&nbsp;+=&nbsp;buffer.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r.Close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fs.Close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(fileclass&nbsp;==&nbsp;&quot;255216&quot;&nbsp;||&nbsp;fileclass&nbsp;==&nbsp;&quot;7173&quot;)//说明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />}<br />6.上传文件文件名唯一性处理(时间戳+SessionID)<br />效果图：<br /><wbr><a href='http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/286353/o_f6.gif' target='_blank'><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/286353/o_f6.gif" border='0'></a><wbr><br />说明：年月日时分秒+临时session+原文件名&nbsp;如果大家怕还会重复可以加GUID<br />后台代码：<br />try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(FileUpload1.PostedFile.FileName&nbsp;==&nbsp;&quot;&quot;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;请选择文件！&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filepath&nbsp;=&nbsp;FileUpload1.PostedFile.FileName;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filename&nbsp;=&nbsp;filepath.Substring(filepath.LastIndexOf(&quot;\\&quot;)&nbsp;+&nbsp;1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;serverpath&nbsp;=&nbsp;Server.MapPath(&quot;images/&quot;)&nbsp;+&nbsp;System.DateTime.Now.ToString(&quot;yyy-MM-dd-hh-mm-ss&quot;)&nbsp;+&nbsp;Session.SessionID&nbsp;+&nbsp;filename;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileUpload1.PostedFile.SaveAs(serverpath);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;上传成功！&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;error)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;上传发生错误！原因：&quot;&nbsp;+&nbsp;error.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />注：GUID的方法：Guid&nbsp;myGuid=Guid.NewGuid();<br />7.上传图片生成等比例缩略图<br />效果图：<br /><wbr><a href='http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/289247/o_f8.gif' target='_blank'><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/289247/o_f8.gif" border='0'></a><wbr><br />缩略图代码：<br />ImageThumbnail.cs<br />using&nbsp;System;<br />using&nbsp;System.IO;<br />using&nbsp;System.Drawing;<br />using&nbsp;System.Drawing.Imaging;<br />public&nbsp;class&nbsp;ImageThumbnail<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Image&nbsp;ResourceImage;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;int&nbsp;ImageWidth;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;int&nbsp;ImageHeight;<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;string&nbsp;ErrorMessage;<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;ImageThumbnail(string&nbsp;ImageFileName)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResourceImage&nbsp;=&nbsp;Image.FromFile(ImageFileName);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErrorMessage&nbsp;=&nbsp;&quot;&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;bool&nbsp;ThumbnailCallback()<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;方法1，按大小<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;bool&nbsp;ReducedImage(int&nbsp;Width,&nbsp;int&nbsp;Height,&nbsp;string&nbsp;targetFilePath)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image&nbsp;ReducedImage;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image.GetThumbnailImageAbort&nbsp;callb&nbsp;=&nbsp;new&nbsp;Image.GetThumbnailImageAbort(ThumbnailCallback);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReducedImage&nbsp;=&nbsp;ResourceImage.GetThumbnailImage(Width,&nbsp;Height,&nbsp;callb,&nbsp;IntPtr.Zero);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReducedImage.Save(@targetFilePath,&nbsp;ImageFormat.Jpeg);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReducedImage.Dispose();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErrorMessage&nbsp;=&nbsp;e.Message;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;方法2，按百分比&nbsp;&nbsp;缩小60%&nbsp;Percent为0.6&nbsp;targetFilePath为目标路径<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;bool&nbsp;ReducedImage(double&nbsp;Percent,&nbsp;string&nbsp;targetFilePath)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image&nbsp;ReducedImage;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image.GetThumbnailImageAbort&nbsp;callb&nbsp;=&nbsp;new&nbsp;Image.GetThumbnailImageAbort(ThumbnailCallback);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImageWidth&nbsp;=&nbsp;Convert.ToInt32(ResourceImage.Width&nbsp;*&nbsp;Percent);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImageHeight&nbsp;=&nbsp;(ResourceImage.Height)*ImageWidth/&nbsp;ResourceImage.Width;//等比例缩放<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReducedImage&nbsp;=&nbsp;ResourceImage.GetThumbnailImage(ImageWidth,&nbsp;ImageHeight,&nbsp;callb,&nbsp;IntPtr.Zero);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReducedImage.Save(@targetFilePath,&nbsp;ImageFormat.Jpeg);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReducedImage.Dispose();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErrorMessage&nbsp;=&nbsp;e.Message;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />后台代码：<br />using&nbsp;System;<br />using&nbsp;System.Data;<br />using&nbsp;System.Configuration;<br />using&nbsp;System.Collections;<br />using&nbsp;System.Web;<br />using&nbsp;System.Web.Security;<br />using&nbsp;System.Web.UI;<br />using&nbsp;System.Web.UI.WebControls;<br />using&nbsp;System.Web.UI.WebControls.WebParts;<br />using&nbsp;System.Web.UI.HtmlControls;<br />public&nbsp;partial&nbsp;class&nbsp;_Default&nbsp;:&nbsp;System.Web.UI.Page<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;Page_Load(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;bt_upload_Click(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(FileUpload1.PostedFile.FileName&nbsp;==&nbsp;&quot;&quot;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;请选择文件！&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filepath&nbsp;=&nbsp;FileUpload1.PostedFile.FileName;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filename&nbsp;=&nbsp;filepath.Substring(filepath.LastIndexOf(&quot;\\&quot;)&nbsp;+&nbsp;1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;serverpath1&nbsp;=&nbsp;Server.MapPath(&quot;images/&quot;)&nbsp;+&nbsp;filename;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;serverpath2&nbsp;=&nbsp;Server.MapPath(&quot;images/&quot;)&nbsp;+&nbsp;System.DateTime.Now.ToString(&quot;yyy-MM-dd-hh-mm-ss&quot;)&nbsp;+&nbsp;Session.SessionID&nbsp;+&nbsp;filename;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileUpload1.PostedFile.SaveAs(serverpath1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImageThumbnail&nbsp;img&nbsp;=&nbsp;new&nbsp;ImageThumbnail(filepath);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;img.ReducedImage(0.4,&nbsp;serverpath2);//0.4表示缩小40%<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;上传成功！&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;error)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lb_info.Text&nbsp;=&nbsp;&quot;上传发生错误！原因：&quot;&nbsp;+&nbsp;error.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></I></I></div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/429944392009321114447712</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/429944392009321114447712</guid>
    <pubDate>Tue, 21 Apr 2009 11:44:47 +0800</pubDate>
    <dcterms:modified>2009-04-21T11:44:47+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[麦兜故事]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/4299443920093145210712</link>
    <description><![CDATA[<div>麦兜故事<a href="http://imgsrc.baidu.com/baike/pic/item/3bb224873e684733c65cc3f7.jpg" target="_blank"><wbr></a><a href='http://imgsrc.baidu.com/baike/abpic/item/3bb224873e684733c65cc3f7.jpg' target='_blank'><img src="http://imgsrc.baidu.com/baike/abpic/item/3bb224873e684733c65cc3f7.jpg" border='0'></a><wbr><wbr>&nbsp;<br /><br />&nbsp;&nbsp;导演：&nbsp;<br /><br />&nbsp;&nbsp;袁建滔&nbsp;Toe&nbsp;Yuen&nbsp;<br /><br />&nbsp;&nbsp;主演：&nbsp;<br /><br />&nbsp;&nbsp;黄秋生&nbsp;Anthony&nbsp;Wong&nbsp;Chau-Sang&nbsp;<br /><br />&nbsp;&nbsp;林海峰&nbsp;Jan&nbsp;Lamb&nbsp;<br /><br />&nbsp;&nbsp;吴君如&nbsp;Sandra&nbsp;Ng&nbsp;<br /><br />&nbsp;&nbsp;类型：动画&nbsp;/&nbsp;家庭&nbsp;/&nbsp;剧情&nbsp;/&nbsp;喜剧&nbsp;<br /><br />&nbsp;&nbsp;更多外文片名：&nbsp;<br /><br />&nbsp;&nbsp;Mak&nbsp;dau&nbsp;goo&nbsp;si&nbsp;<br /><br />&nbsp;&nbsp;Mai&nbsp;dou&nbsp;gu&nbsp;shi&nbsp;<br /><br />&nbsp;&nbsp;片长：Japan:75&nbsp;min&nbsp;<br /><br />&nbsp;&nbsp;国家/地区：香港&nbsp;<br /><br />&nbsp;&nbsp;对白语言：粤语&nbsp;<br /><br />&nbsp;&nbsp;上映日期：2001年12月15日&nbsp;香港&nbsp;<br /><br />&nbsp;&nbsp;制作公司：&nbsp;<br /><br />&nbsp;&nbsp;Bliss&nbsp;Picture&nbsp;Ltd.[香港]&nbsp;<br /><br />&nbsp;&nbsp;发行公司：&nbsp;<br /><br />&nbsp;&nbsp;寰宇镭射录影有限公司[香港](2002)&nbsp;(Hong&nbsp;Kong)&nbsp;(DVD)&nbsp;<br /><br />&nbsp;&nbsp;安乐影片有限公司[香港](2001)&nbsp;(Hong&nbsp;Kong)&nbsp;(theatrical)&nbsp;<br /><br />&nbsp;&nbsp;Flash&nbsp;Forward&nbsp;Entertainment&nbsp;Co.&nbsp;Ltd.(2003)&nbsp;(Taiwan)&nbsp;(all&nbsp;media)&nbsp;<br /><br />&nbsp;&nbsp;Mongkol&nbsp;Film&nbsp;Company[泰国](2004)&nbsp;(Thailand)&nbsp;(all&nbsp;media)&nbsp;<br /><br />&nbsp;&nbsp;Pretty&nbsp;Pictures[法国](2003)&nbsp;(France)&nbsp;(all&nbsp;media)&nbsp;(France)&nbsp;<br /><br />&nbsp;&nbsp;Sponge[韩国](2004)&nbsp;(Korea)&nbsp;(all&nbsp;media)&nbsp;<br /><br />&nbsp;&nbsp;其他公司：&nbsp;<br /><br />&nbsp;&nbsp;Asia&nbsp;Legend&nbsp;Limited[香港]digital&nbsp;film&nbsp;output&nbsp;<br /><br />&nbsp;&nbsp;中国星电影制作服务有限公司[香港]post-production&nbsp;facilities&nbsp;<br /><br />&nbsp;&nbsp;Cine&nbsp;Art&nbsp;Laboratoryfilm&nbsp;processing&nbsp;<br /><br />&nbsp;&nbsp;Digital&nbsp;Magic&nbsp;Ltd.[香港]digital&nbsp;film&nbsp;output&nbsp;<br /><br />&nbsp;&nbsp;嘉联娱乐亚洲有限公司[香港]international&nbsp;sales&nbsp;<br /><br />&nbsp;&nbsp;Toplight&nbsp;Engineeringcamera&nbsp;and&nbsp;lighting&nbsp;equipment&nbsp;provided&nbsp;by&nbsp;(end&nbsp;sequence)&nbsp;<br /><br />&nbsp;&nbsp;剧情梗概：这是关于九龙大角咀猪样小朋友麦兜的成长故事，由他的出生、上幼儿园、上中学、再讲讲讲讲，到负家产的故事。麦兜单纯乐观、资质平平，却有很多梦想。麦太是单亲妈妈，把所有梦想寄托在儿子身上。希望、失望、希望、失望……一个一个的，都是失败，但麦兜还是凭着他正直善良的「死蠢」，创造了他美丽的世界……&nbsp;<br /><br />&nbsp;&nbsp;出生时出现异象的麦兜，在妈妈心目中总希望他与众不同。那年，香港得了第一面奥运金牌，妈妈于是带著麦兜找到了教练，希望麦兜也能为国争光。日子一天天过去，麦兜也长大了，虽然未能夺得金牌光耀乡里，但是他还是麦兜，独一无二的麦兜。&nbsp;<br /><br />&nbsp;&nbsp;这是一个关于成长和奋斗的故事，故事的主角麦兜，其实是一个粉红色的可爱的小猪，只不过在作者的笔下，给予了他人性化的一面，而他的世界也和人的世界没有什么区别。故事从他的出生、上幼儿园、上中学，一直到他学习抢宝山……等等各种成长的经历。麦兜单纯乐观、资质平平，却有很多梦想。虽然他妈妈麦太是单亲妈妈，但也拥有着乐观和坚毅的品质，并且富于梦想，因此把所有希望都寄托在儿子身上。但不断的希望、失望、再希望、再失望……一个一个的，不论怎样的失败，却从来没有气馁过，永远都充满了信心和勇气，麦兜也凭着他正直善良，努力的创造着属于他的美丽的世界……&nbsp;<br /><br />&nbsp;&nbsp;【曾获奖项】&nbsp;<br /><br />&nbsp;&nbsp;2003年法国安锡国际动画电影节&nbsp;<br /><br />&nbsp;&nbsp;最佳电影奖&nbsp;<br /><br />&nbsp;&nbsp;2003年蒙特利尔国际儿童电影节&nbsp;<br /><br />&nbsp;&nbsp;最佳长片大奖&nbsp;<br /><br />&nbsp;&nbsp;汉城国际动画节2003&nbsp;<br /><br />&nbsp;&nbsp;最佳动画长片大奖&nbsp;<br /><br />&nbsp;&nbsp;第廿六届香港国际电影节&nbsp;<br /><br />&nbsp;&nbsp;国际影评人联盟奖&nbsp;<br /><br />&nbsp;&nbsp;第三十九届台湾金马奖&nbsp;<br /><br />&nbsp;&nbsp;最佳动画片&nbsp;<br /><br />&nbsp;&nbsp;第二十一届香港电影金像奖&nbsp;<br /><br />&nbsp;&nbsp;最佳原创音乐(何崇志)&nbsp;<br /><br />&nbsp;&nbsp;第七届香港金紫荆奖&nbsp;<br /><br />&nbsp;&nbsp;全年十大华语片&nbsp;&nbsp;&nbsp;<br /><br />麦兜的故事（粤语）01&nbsp;<br /><EMBED wmode="opaque" type='application/octet-stream' allowscriptaccess="never" allownetworking="internal" allowFullScreen="false" src="http://player.youku.com/player.php/sid/XNTQwMDEwMA==/v.swf" width="640" height="480"/><wbr>&nbsp;<br /><br />麦兜的故事（粤语）02&nbsp;<br /><EMBED wmode="opaque" type='application/octet-stream' allowscriptaccess="never" allownetworking="internal" allowFullScreen="false" src="http://player.youku.com/player.php/sid/XNTQwMTk2OA==/v.swf" width="640" height="480"/><wbr><br />&nbsp;<br />麦兜的故事（粤语）03<br /><EMBED wmode="opaque" type='application/octet-stream' allowscriptaccess="never" allownetworking="internal" allowFullScreen="false" src="http://player.youku.com/player.php/sid/XNzc5NTU3NzY=/v.swf" width="640" height="480"/><wbr><br />&nbsp;<br />麦兜故事之菠萝油王子(粤语中字)&nbsp;<br /><EMBED wmode="opaque" type='application/octet-stream' allowscriptaccess="never" allownetworking="internal" allowFullScreen="false" src="http://player.youku.com/player.php/sid/XNDE5NzE3MDA=/v.swf" width="640" height="480"/><wbr><br />&nbsp;<br />麦兜故事-春田花花同学会粤语版<br /><EMBED wmode="opaque" type='application/octet-stream' allowscriptaccess="never" allownetworking="internal" allowFullScreen="false" src="http://player.youku.com/player.php/sid/XNDU4OTU1MjA=/v.swf" width="640" height="480"/><wbr><br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br /></div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/4299443920093145210712</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/4299443920093145210712</guid>
    <pubDate>Tue, 14 Apr 2009 17:21:00 +0800</pubDate>
    <dcterms:modified>2009-04-14T17:21:00+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[DNF动画版-----阿拉德战记]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/42994439200931311824712</link>
    <description><![CDATA[<div><B><wbr>韩国的大人气在线动作RPG游戏「地下城与勇士(Dungeon&nbsp;&amp;&nbsp;Fihoudaoter)」，在日本获得了80万人以上的登陆会员。目前这部人气作品决定动画化，预定2009年播放。动画版名为「地下城与勇士&nbsp;-阿拉德战记-」，由GONZO和韩国工作室GK娱乐共同合作制作，由池添隆博出任监督一职。CAST方面，则有近藤隆、野川樱、铃村健一、辻步等实力声优助阵。<br /><br />【动画名称】スラップアップパーティー&nbsp;-アラド戦記-（地下城与勇士&nbsp;-阿拉德战记-）<br />【播放时间】2009年4月3日（全26话、テレビ東京、每周五26:45）<br />【官网】</B><wbr><a href="http://www.sup-arad.jp/" target="_blank"><font color=#0070af style="line-height:1.3em"><B><wbr>http://www.sup-arad.jp/</B><wbr></font><wbr></a><wbr><br /><br /><B><wbr>【故事介绍】<br />阿拉德历891年，阿拉德大陆“火山的诅咒之光”降临到整个大陆……主人公羽乱因为诅咒，一只手被鬼化了。然后，和偶然发现的剑，并且和被灵付体的鲁玖史一起，他上了解除诅咒的旅程。旅途中和各种各样的同伴相遇，开始了他们冒险故事……<br /><br />【STAFF】<br />原作：NEOPLE<br />监督：池添隆博<br />系列构成：山野辺一記<br />人物设定：永作友克<br />美术设定：松平サトシ<br />色彩设计：古市裕一<br />摄影监督：OH&nbsp;SEONG-HA<br />编辑：三嶋章記<br />音响监督：吉田知弘<br />音响制作：STUDIO&nbsp;MAUSU<br />音乐：中塚武<br />动画制作：GONZO、GK&nbsp;ENTERTAINMENT<br />製作：D&amp;F製作委員会<br /><br />【CAST】<br />羽乱?安倍鲁：近藤隆<br />龙芽伊?兰加：野川さくら<br />贺边史守：鈴村健一<br />伊久西亚?纯：辻あゆみ<br />杰雫?拉克丝羽：黒田崇矢<br />伊鲁边玖：置鮎龍太郎<br />绯莉亚：田中理恵<br />叶瑠千：岩田光央<br />鲁玖史：渡辺明乃<br /><br />【主题歌】<br />OP：Party&nbsp;Play<br />歌：野川さくら<br /><br />ED：未定<br />歌：YMCK<br /><br /><wbr><a href='http://image.17173.com/bbs/upload/2009/04/05/123891014664.jpg' target='_blank'><img src="http://image.17173.com/bbs/upload/2009/04/05/123891014664.jpg" border='0'></a><wbr></B><wbr>&nbsp;<br /><br /><wbr><a href='http://image.17173.com/bbs/upload/2009/04/05/123891017349.jpg' target='_blank'><img src="http://image.17173.com/bbs/upload/2009/04/05/123891017349.jpg" border='0'></a><wbr>&nbsp;<br /><br /><wbr><a href='http://image.17173.com/bbs/upload/2009/04/05/123891018878.jpg' target='_blank'><img src="http://image.17173.com/bbs/upload/2009/04/05/123891018878.jpg" border='0'></a><wbr>&nbsp;<br /><br /><wbr><a href='http://image.17173.com/bbs/upload/2009/04/05/123891020633.jpg' target='_blank'><img src="http://image.17173.com/bbs/upload/2009/04/05/123891020633.jpg" border='0'></a><wbr>&nbsp;<br /><br /><a href="http://www.youku.com/playlist_show/id_3184322.html" target="_blank">YOUKU播放地址</a><wbr><br /><br /></div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/42994439200931311824712</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/42994439200931311824712</guid>
    <pubDate>Mon, 13 Apr 2009 23:08:24 +0800</pubDate>
    <dcterms:modified>2009-04-13T23:08:24+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[SQL中char、varchar 和nchar、nvarchar的区别]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/4299443920093774125712</link>
    <description><![CDATA[<div>这个问题以前遇到过，不过没有系统的了解，碰巧前几天同学问起，便查了下资料，整理总结了一下。<br />&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;和varchar的长度都在1到8000之间，它们的区别在于char是定长字符数据，而varchar是变长字符数据。所谓定长就是长度固定的，当输入&nbsp;的数据长度没有达到指定的长度时将自动以英文空格在其后面填充，使长度达到相应的长度；而变长字符数据则不会以空格填充。text存储可变长度的非&nbsp;Unicode数据，最大长度为2^31-1(2,147,483,647)个字符。&nbsp;<br /><br />后面三种数据类型和前面的相比，从名称上看只是&nbsp;多了个字母&quot;n&quot;，它表示存储的是Unicode数据类型的字符。写过程序的朋友对Unicode应该很了解。字符中，英文字符只需要一个字节存储就足够&nbsp;了，但汉字众多，需要两个字节存储，英文与汉字同时存在时容易造成混乱，Unicode字符集就是为了解决字符集这种不兼容的问题而产生的，它所有的字符&nbsp;都用两个字节表示，即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较：&nbsp;nchar、nvarchar则最多存储4000个字符，不论是英文还是汉字；而char、varchar最多能存储8000个英文，4000个汉字。可&nbsp;以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字，较为方便，但在存储英文时数量上有些损失。<br />1、CHAR。<font face=Verdana  style="line-height:1.3em">CHAR存储定长数据很方便，CHAR字段上的索引效率级高，比如定义char(10)，那么不论你存储的数据是否达到了10个字节，都要占去10个字节的空间。</font><wbr><br /><font face=Verdana  style="line-height:1.3em">&nbsp;&nbsp;&nbsp;&nbsp;2、VARCHAR。存储变长数据，但存储效率没有CHAR高。</font><wbr><font color=#ffffff face=宋体 style="line-height:1.3em">如果一个字段可能的值是不固定长度的，我们只知道它不可能超过10个字符，把它定义为&nbsp;VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢？这一个字节用于保存实际使用了多大的长度。</font><wbr><br /><font color=#ffcc00 style="line-height:1.3em">&nbsp;&nbsp;&nbsp;&nbsp;修改前（char）</font><wbr><br /><font color=#ffffff face=宋体 style="line-height:1.3em"><wbr><a href='http://blog.5y6s.net/attachment/Mon_0510/5ad8a88f41dfc98.jpg' target='_blank'><img src="http://blog.5y6s.net/attachment/Mon_0510/5ad8a88f41dfc98.jpg" border='0'></a><wbr></font><wbr><br /><font color=#ffcc00 style="line-height:1.3em">&nbsp;&nbsp;&nbsp;&nbsp;修改后（varchar）</font><wbr><br /><font color=#ffffff face=宋体 style="line-height:1.3em"><wbr><a href='http://blog.5y6s.net/attachment/Mon_0510/f2e55f5269e4cfd.jpg' target='_blank'><img src="http://blog.5y6s.net/attachment/Mon_0510/f2e55f5269e4cfd.jpg" border='0'></a><wbr></font><wbr><br /><font color=#ffffff face=宋体 style="line-height:1.3em">&nbsp;&nbsp;&nbsp;上面两个图是论坛中网友贴出来的，可以看到修改后pw_user“减肥”效果相当明显。</font><wbr><br /><font face=宋体  style="line-height:1.3em">&nbsp;&nbsp;&nbsp;&nbsp;从空间上考虑，用varchar合适；</font><wbr><font face=宋体  style="line-height:1.3em">从效率上考虑，用char合适，关键是根据实际情况找到权衡点。</font><wbr><br /><font face=Verdana  style="line-height:1.3em">&nbsp;&nbsp;&nbsp;3、TEXT。text存储可变长度的非Unicode数据，最大长度为2^31-1(2,147,483,647)个字符。</font><wbr><br /><font face=Verdana  style="line-height:1.3em">&nbsp;&nbsp;&nbsp;&nbsp;4、NCHAR、NVARCHAR、NTEXT。这三种从名字上看比前面三种多了个“N”。它表示存储的是Unicode数据类型的字符。我们知道字符中，英文字符只需要一个字节存储就足够了，但汉字众多，需要两个字节存储，英文与汉字同时存在时容易造成混乱，Unicode字符集就是为了解决字符集这种不兼容的问题而产生的，它所有的字符都用两个字节表示，即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来，nchar、nvarchar则最多存储4000个字符，不论是英文还是汉字；而char、varchar最多能存储8000个英文，4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字，较为方便，但在存储英文时数量上有些损失。</font><wbr><br /><font face=Verdana  style="line-height:1.3em">&nbsp;&nbsp;&nbsp;&nbsp;所以一般来说，如果含有中文字符，用nchar/nvarchar，如果纯英文和数字，用char/varchar。</font><wbr></div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/4299443920093774125712</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/4299443920093774125712</guid>
    <pubDate>Tue, 7 Apr 2009 19:41:25 +0800</pubDate>
    <dcterms:modified>2009-04-07T19:41:25+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[sql日期函数]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/429944392009377205712</link>
    <description><![CDATA[<div><font color=#800000 size=3 style="line-height:1.3em">1.一个月第一天的<br />Select&nbsp;DATEADD(mm,&nbsp;DATEDIFF(mm,0,getdate()),&nbsp;0)<br /><br />2.本周的星期一<br />Select&nbsp;DATEADD(wk,&nbsp;DATEDIFF(wk,0,getdate()),&nbsp;0)<br /><br />3.一年的第一天<br />Select&nbsp;DATEADD(yy,&nbsp;DATEDIFF(yy,0,getdate()),&nbsp;0)<br /><br />4.季度的第一天<br />Select&nbsp;DATEADD(qq,&nbsp;DATEDIFF(qq,0,getdate()),&nbsp;0)<br /><br />5.当天的半夜<br />Select&nbsp;DATEADD(dd,&nbsp;DATEDIFF(dd,0,getdate()),&nbsp;0)<br /><br />6.上个月的最后一天<br />Select&nbsp;dateadd(ms,-3,DATEADD(mm,&nbsp;DATEDIFF(mm,0,getdate()),&nbsp;0))<br /><br />7.去年的最后一天<br />Select&nbsp;dateadd(ms,-3,DATEADD(yy,&nbsp;DATEDIFF(yy,0,getdate()),&nbsp;0))<br /><br />8.本月的最后一天<br />Select&nbsp;dateadd(ms,-3,DATEADD(mm,&nbsp;DATEDIFF(m,0,getdate())+1,&nbsp;0))<br /><br />9.本年的最后一天<br />Select&nbsp;dateadd(ms,-3,DATEADD(yy,&nbsp;DATEDIFF(yy,0,getdate())+1,&nbsp;0))<br /><br />10.本月的第一个星期一<br />select&nbsp;DATEADD(wk,&nbsp;DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())),&nbsp;0)&nbsp;<br /><br />返回当前日期和时间<br />通过函数GETDATE（），你可以获得当前的日期和时间。函数GETDATE（）可以用来作为DATEDIME型字段的缺省值。这对插入记录时保存当时的时间是有用的。要建立一个表，其中的记录包含有当前的日期和时间，可以添加一个DATETIME型字段，指定其缺省值为函数GETDATE（）的返回值，就象这样：<br /><br />Create&nbsp;TABLE&nbsp;site_log&nbsp;(<br />username&nbsp;VARCHAR(40)，<br />useractivity&nbsp;VARCHAR(100)，<br />entrydate&nbsp;DATETIME&nbsp;DEFAULT&nbsp;GETDATE())<br /><br />转换日期和时间<br />函数GETDATE（）的返回值在显示时只显示到秒。实际上，SQL&nbsp;Sever内部时间可以精确到毫秒级（确切地说，可以精确到3.33毫秒）。<br />要得到不同格式的日期和时间，你需要使用函数CONVERT（）。例如，当下面的这个语句执行时，显示的时间将包括毫秒：<br /><br />Select&nbsp;CONVERT(VARCHAR(30)，GETDATE()，9)<br /><br />注意例子中数字9的使用。这个数字指明了在显示日期和时间时使用哪种日期和时间格式。当这个语句执行时，将显示如下的日期和时间：<br />Nov&nbsp;30&nbsp;1997&nbsp;3:29:55:170AM<br />(1&nbsp;row(s)&nbsp;affected)<br /><br />在函数CONVERT（）中你可以使用许多种不同风格的日期和时间格式。下表显示了所有的格式。<br /><br />日期和时间的类型：<br />类型值&nbsp;标准&nbsp;输出<br />0&nbsp;Default&nbsp;mon&nbsp;dd&nbsp;yyyy&nbsp;hh:miAM<br />1&nbsp;USA&nbsp;mm/dd/yy<br />2&nbsp;ANSI&nbsp;yy.mm.dd<br />3&nbsp;British/French&nbsp;dd/mm/yy<br />4&nbsp;German&nbsp;dd.mm.yy<br />5&nbsp;Italian&nbsp;dd-mm-yy<br />6&nbsp;-&nbsp;dd&nbsp;mon&nbsp;yy<br />7&nbsp;-&nbsp;mon&nbsp;dd，yy<br />8&nbsp;-&nbsp;hh:mi:ss<br />9&nbsp;Default&nbsp;+&nbsp;milliseconds--mon&nbsp;dd&nbsp;yyyy<br />hh:mi:ss:mmmAM(or&nbsp;)<br />10&nbsp;USA&nbsp;mm-dd-yy<br />11&nbsp;JAPAN&nbsp;yy/mm/dd<br />12&nbsp;ISO&nbsp;yymmdd<br />13&nbsp;Europe&nbsp;Default&nbsp;+&nbsp;milliseconds--dd&nbsp;mon&nbsp;yyyy<br />hh:mi:ss:mmm(24h)<br />14&nbsp;-&nbsp;hh:mi:ss:mmm(24h)<br /><br />类型0，9，和13总是返回四位的年。对其它类型，要显示世纪，把style值加上100。类型13和14返回24小时时钟的时间。类型0，7，和13返回的月份用三位字符表示（用Nov代表November）.<br /><br />对表中所列的每一种格式，你可以把类型值加上100来显示有世纪的年（例如，00年将显示为2000年）。例如，要按日本标准显示日期，包括世纪，你应使用如下的语句：<br /><br />Select&nbsp;CONVERT（VARCHAR（30），GETDATE（），111）<br /><br />在这个例子中，函数CONVERT（）把日期格式进行转换，显示为1997/11/30<br /><br />抽取日期和时间<br />在许多情况下，你也许只想得到日期和时间的一部分，而不是完整的日期和时间。为了抽取日期的特定部分，你可以使用函数DATEPART（），象这样：<br /><br />Select&nbsp;site_name&nbsp;‘Site&nbsp;Name’，<br />DATEPART(mm，site_entrydate)&nbsp;‘Month&nbsp;Posted’&nbsp;FROM&nbsp;site_directory<br /><br />函数DATEPART（）的参数是两个变量。第一个变量指定要抽取日期的哪一部分；第二个变量是实际的数据。在这个例子中，函数DATEPART（）抽取月份，因为mm代表月份。下面是这个Select&nbsp;语句的输出结果：<br /><br />Site&nbsp;Name&nbsp;Month&nbsp;Posted<br />………………………………………………………………<br />Yahoo&nbsp;2<br />Microsoft&nbsp;5<br />Magicw3&nbsp;5<br />(3&nbsp;row(s)&nbsp;affected)<br /><br />Month&nbsp;Posted列显示了每个站点被查询的月份。函数DATEPART（）的返回值是一个整数。你可以用这个函数抽取日期的各个不同部分，如下表所示。<br /><br />日期的各部分及其简写<br />日期部分&nbsp;简写&nbsp;值<br />year&nbsp;yy&nbsp;1753--9999<br />quarter&nbsp;qq&nbsp;1--4<br />month&nbsp;mm&nbsp;1--12<br />day&nbsp;of&nbsp;year&nbsp;dy&nbsp;1--366<br />day&nbsp;dd&nbsp;1--31<br />week&nbsp;wk&nbsp;1--53<br />weekday&nbsp;dw&nbsp;1--7(Sunday--Saturday)<br />hour&nbsp;hh&nbsp;0--23<br />minute&nbsp;mi&nbsp;0--59<br />second&nbsp;ss&nbsp;0--59<br />milisecond&nbsp;ms&nbsp;0--999<br /><br />当你需要进行日期和时间的比较时，使用函数DATEPART（）返回整数是有用的。但是，上例中的查询结果（2，5）不是十分易读。要以更易读的格式得到部分的日期和时间，你可以使用函数DATENAME（），如下例所示：<br /><br />Select&nbsp;site_name&nbsp;‘Site&nbsp;Name’<br />DATENAME(mm，site_entrydate)&nbsp;‘Month&nbsp;Posted’<br />FROM&nbsp;site_directory<br /><br />函数DATENAME（）和函数DATEPART（）接收同样的参数。但是，它的返回值是一个字符串，而不是一个整数。下面是上例该用DATENAME（）得到的结果：<br /><br />Site&nbsp;Name&nbsp;Month&nbsp;Postec<br />………………………………………………………………….<br />Yahoo&nbsp;February<br />Microsoft&nbsp;June<br />Magicw3&nbsp;June<br />(3&nbsp;row(s)&nbsp;affected)<br /><br />你也可以用函数DATENAE（）来抽取一个星期中的某一天。下面的这个例子同时抽取一周中的某一天和日期中的月份：<br /><br />Select&nbsp;site_name&nbsp;‘Site&nbsp;Name’，<br />DATENAME(dw，site_entrydate)+&nbsp;‘-’&nbsp;+&nbsp;DATENAME（mm，site_entrydate）<br />‘Day&nbsp;and&nbsp;Month&nbsp;Posted’&nbsp;FORM&nbsp;site_directory<br /><br />这个例子执行时，将返回如下的结果：<br /><br />Site&nbsp;Name&nbsp;Day&nbsp;and&nbsp;Month&nbsp;Posted<br />………………………………………………………………………<br />Yahoo&nbsp;Friday&nbsp;-&nbsp;February<br />Microsoft&nbsp;Tuesday&nbsp;-&nbsp;June<br />Magicw3&nbsp;Monday&nbsp;-&nbsp;June<br />(3&nbsp;row(s)&nbsp;affected)<br /><br />返回日期和时间范围<br />当你分析表中的数据时，你也许希望取出某个特定时间的数据。你也许对特定的某一天中――比如说2000年12月25日――访问者在你站点上的活动感兴趣。要取出这种类型的数据，你也许会试图使用这样的Select语句：<br /><br />Select&nbsp;*&nbsp;FROM&nbsp;weblog&nbsp;Where&nbsp;entrydate=&quot;12/25/20000&quot;<br /><br />不要这样做。这个Select语句不会返回正确的记录――它将只返回日期和时间是12/25/2000&nbsp;12:00:00:000AM的记录。换句话说，只有刚好在午夜零点输入的记录才被返回。<br /><br />问题是SQL&nbsp;Sever将用完整的日期和时间代替部分日期和时间。例如，当你输入一个日期，但不输入时间时，SQL&nbsp;Sever将加上缺省的时间“12：00：00：000AM”。当你输入一个时间，但不输入日期时，SQL&nbsp;Sever将加上缺省的日期“Jan&nbsp;1&nbsp;1900”。<br />要返回正确的记录，你需要适用日期和时间范围。有不止一种途径可以做到这一点。例如，下面的这个Select&nbsp;语句将能返回正确的记录：<br /><br />Select&nbsp;*&nbsp;FROM&nbsp;weblog&nbsp;<br />Where&nbsp;entrydate&gt;=”12/25/2000”&nbsp;AND&nbsp;entrydate&lt;”12/26/2000”<br /><br />这个语句可以完成任务，因为它选取的是表中的日期和时间大于等于12/25/2000&nbsp;12:00:00:000AM并小于12/26/2000&nbsp;12:00:00:000AM的记录。换句话说，它将正确地返回2000年圣诞节这一天输入的每一条记录。<br />另一种方法是，你可以使用LIKE来返回正确的记录。通过在日期表达式中包含通配符“％”，你可以匹配一个特定日期的所有时间。这里有一个例子：<br /><br />Select&nbsp;*&nbsp;FROM&nbsp;weblog&nbsp;Where&nbsp;entrydate&nbsp;LIKE&nbsp;‘Dec&nbsp;25&nbsp;2000%’<br /><br />这个语句可以匹配正确的记录。因为通配符“％”代表了任何时间。<br />使用这两种匹配日期和时间范围的函数，你可以选择某个月，某一天，某一年，某个小时，某一分钟，某一秒，甚至某一毫秒内输入的记录。但是，如果你使用LIKE&nbsp;来匹配秒或毫秒，你首先需要使用函数CONVERT（）把日期和时间转换为更精确的格式（参见前面“转换日期和时间”一节）。<br /><br />比较日期和时间<br />最后，还有两个日期和时间函数对根据日期和时间取出记录是有用的。使用函数DATEADD（）和DATEDIFF（），你可以比较日期的早晚。例如，下面的Select语句将显示表中的每一条记录已经输入了多少个小时：<br /><br />Select&nbsp;entrydate&nbsp;‘Time&nbsp;Entered’<br />DATEDIFF(hh，entrydate，GETDATE())&nbsp;‘Hours&nbsp;Ago’&nbsp;FROM&nbsp;weblog<br /><br />如果当前时间是2000年11月30号下午6点15分，则会返回如下的结果：<br /><br />Time&nbsp;Entered&nbsp;Hours&nbsp;Ago<br />…………………………………………………..<br />Dec&nbsp;30&nbsp;2000&nbsp;4:09PM&nbsp;2<br />Dec&nbsp;30&nbsp;2000&nbsp;4:13PM&nbsp;2<br />Dec&nbsp;1&nbsp;2000&nbsp;4:09PM&nbsp;698<br />(3&nbsp;row(s)&nbsp;affected)<br /><br />函数DADEDIFF（）的参数是三个变量。第个变量指定日期的某一部分。在这个例子中，是按小时对日期进行比较，（要了解日期各部分的详细内容，请参考表11.2）在日期2000年11月1日和2000年11月30日的指定时间之间有689个小时。另外两个参数是要进行比较的时间。为了返回一个正数，较早的时间应该先给。<br />函数DATEADD（）把两个日期相加。当你需要计算截止日期这一类的数据时，这个函数是有用处的。假如你要查询一个月前注册用户的记录，你可以使用如下的Select语句：<br /><br />Select&nbsp;username&nbsp;‘User&nbsp;Name’，<br />DATEADD(mm，1，firstvisit_date)&nbsp;‘Registration&nbsp;Expires’<br />FROM&nbsp;registration_table<br /><br />函数DATEADD（）的参数有三个变量。第一个变量代表日期的某一部分，这个例子用到了代表月份的mm。第二个变量指定了时间的间隔――在本例中是一个月。最后一个变量是一个日期，在这个例子中，日期是取自DATETIME型字段firstvisit_date.假设当前日期是June&nbsp;30，2000，这个语句将返回如下的内容：<br /><br />User&nbsp;Name&nbsp;Registration&nbsp;Expires<br />……………………………………………………………………………<br />Bill&nbsp;Gates&nbsp;Jul&nbsp;30&nbsp;2000&nbsp;4:09PM<br />President&nbsp;Clinton&nbsp;Jul&nbsp;30&nbsp;2000&nbsp;4:13PM<br />William&nbsp;Shakespeare&nbsp;Jul&nbsp;1&nbsp;2000&nbsp;4:09PM<br />(3&nbsp;row(s)&nbsp;affected)<br /><br />注意：<br />使用函数DATEADD（）把一个日期加上一个月，它并不加上30天。这个函数只简单地把月份值加1。</font><wbr><br />SQL&nbsp;Server里面可能经常会用到的日期格式转换方法:&nbsp;<br />举例如下:&nbsp;<br />select&nbsp;CONVERT(varchar,&nbsp;getdate(),&nbsp;120&nbsp;)&nbsp;<br />2004-09-12&nbsp;11:06:08&nbsp;<br />select&nbsp;replace(replace(replace(CONVERT(varchar,&nbsp;getdate(),&nbsp;120&nbsp;),'-',''),'&nbsp;',''),':','')&nbsp;<br />20040912110608&nbsp;<br />select&nbsp;CONVERT(varchar(12)&nbsp;,&nbsp;getdate(),&nbsp;111&nbsp;)&nbsp;<br />2004/09/12&nbsp;<br />select&nbsp;CONVERT(varchar(12)&nbsp;,&nbsp;getdate(),&nbsp;112&nbsp;)&nbsp;<br />20040912&nbsp;<br />select&nbsp;CONVERT(varchar(12)&nbsp;,&nbsp;getdate(),&nbsp;102&nbsp;)&nbsp;<br />2004.09.12&nbsp;<br />select&nbsp;CONVERT(varchar(12)&nbsp;,&nbsp;getdate(),&nbsp;101&nbsp;)&nbsp;<br />09/12/2004&nbsp;<br />select&nbsp;CONVERT(varchar(12)&nbsp;,&nbsp;getdate(),&nbsp;103&nbsp;)&nbsp;<br />12/09/2004&nbsp;<br />select&nbsp;CONVERT(varchar(12)&nbsp;,&nbsp;getdate(),&nbsp;104&nbsp;)&nbsp;<br />12.09.2004&nbsp;<br />select&nbsp;CONVERT(varchar(12)&nbsp;,&nbsp;getdate(),&nbsp;105&nbsp;)&nbsp;<br />12-09-2004&nbsp;<br />select&nbsp;CONVERT(varchar(12)&nbsp;,&nbsp;getdate(),&nbsp;106&nbsp;)&nbsp;<br />12&nbsp;09&nbsp;2004&nbsp;<br />select&nbsp;CONVERT(varchar(12)&nbsp;,&nbsp;getdate(),&nbsp;107&nbsp;)&nbsp;<br />09&nbsp;12,&nbsp;2004&nbsp;<br />select&nbsp;CONVERT(varchar(12)&nbsp;,&nbsp;getdate(),&nbsp;108&nbsp;)&nbsp;<br />11:06:08&nbsp;<br />select&nbsp;CONVERT(varchar(12)&nbsp;,&nbsp;getdate(),&nbsp;109&nbsp;)&nbsp;<br />09&nbsp;12&nbsp;2004&nbsp;1&nbsp;<br />select&nbsp;CONVERT(varchar(12)&nbsp;,&nbsp;getdate(),&nbsp;110&nbsp;)&nbsp;<br />09-12-2004&nbsp;<br />select&nbsp;CONVERT(varchar(12)&nbsp;,&nbsp;getdate(),&nbsp;113&nbsp;)&nbsp;<br />12&nbsp;09&nbsp;2004&nbsp;1&nbsp;<br />select&nbsp;CONVERT(varchar(12)&nbsp;,&nbsp;getdate(),&nbsp;114&nbsp;)&nbsp;<br />11:06:08.177&nbsp;<br /></div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/429944392009377205712</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/429944392009377205712</guid>
    <pubDate>Tue, 7 Apr 2009 19:20:05 +0800</pubDate>
    <dcterms:modified>2009-04-07T19:20:05+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[54 个优秀的 UNDER CONSTRUCTION 页设计（下）]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/429944392009376655712</link>
    <description><![CDATA[<div>一个空荡荡的页面，上面有一个卡通小人用铁锹铲土，这是我们印象中的&nbsp;UNDER&nbsp;CONSTRUCTION&nbsp;页的标准设计，然而在各种优秀&nbsp;Web&nbsp;设计如雨后春笋般涌现的今天，你还好意思这样做吗？&nbsp;本文精选了54&nbsp;个出色的&nbsp;UNDER&nbsp;CONSTRUCTION&nbsp;页设计，或许你可以从中获得很好的启发。这是本文的第二部分，<a href="http://www.comsharp.com/GetKnowledge/zh-CN/TeamBlogTimothyPage_K772.aspx" target="_blank">请参阅第一部分</a><wbr>。1.&nbsp;<a href="http://www.lukesbeard.com/" target="_blank">Luke’s&nbsp;Beard</a><wbr>&nbsp;<br /><a href="http://www.lukesbeard.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/1.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/1.jpg" border='0'></a><wbr><wbr><br />2.&nbsp;<a href="http://favmovie.net/" target="_blank">Fav&nbsp;Moive</a><wbr>&nbsp;<br /><a href="http://favmovie.net/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/2.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/2.jpg" border='0'></a><wbr><wbr><br />3.&nbsp;<a href="http://www.isablah.com/" target="_blank">Isablah</a><wbr>&nbsp;<br /><a href="http://www.isablah.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/3.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/3.jpg" border='0'></a><wbr><wbr><br />4.&nbsp;<a href="http://thehelvetia.com/" target="_blank">The&nbsp;Helvetica</a><wbr>&nbsp;<br /><a href="http://thehelvetia.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/4.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/4.jpg" border='0'></a><wbr><wbr><br />5&nbsp;.&nbsp;<a href="http://www.upstatedesign.org/" target="_blank">Upstate</a><wbr>&nbsp;<br /><a href="http://www.upstatedesign.org/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/5.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/5.jpg" border='0'></a><wbr><wbr><br />6.&nbsp;<a href="http://www.mynitelife.co.uk/" target="_blank">My&nbsp;Nite&nbsp;Life</a><wbr>&nbsp;<br /><a href="http://www.mynitelife.co.uk/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/6.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/6.jpg" border='0'></a><wbr><wbr><br />7.&nbsp;<a href="http://www.humanbinary.com/" target="_blank">Human&nbsp;Binary</a><wbr>&nbsp;<br /><a href="http://www.humanbinary.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/7.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/7.jpg" border='0'></a><wbr><wbr><br />8.&nbsp;<a href="http://www.mealnation.com/" target="_blank">Meal&nbsp;nation</a><wbr>&nbsp;<br /><a href="http://www.mealnation.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/8.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/8.jpg" border='0'></a><wbr><wbr><br />9.&nbsp;<a href="http://www.familiabaum.com.br/" target="_blank">Site&nbsp;Da&nbsp;Familia&nbsp;Baum</a><wbr>&nbsp;<br /><a href="http://www.familiabaum.com.br/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/9.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/9.jpg" border='0'></a><wbr><wbr><br />10.&nbsp;<a href="http://www.vyoopoint.com/" target="_blank">Vyoopoint</a><wbr>&nbsp;<br /><a href="http://www.vyoopoint.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/10.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/10.jpg" border='0'></a><wbr><wbr><br />11.&nbsp;<a href="http://www.ticketsnoop.net/" target="_blank">Ticket&nbsp;Snoop</a><wbr>&nbsp;<br /><a href="http://www.ticketsnoop.net/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/11.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/11.jpg" border='0'></a><wbr><wbr><br />12.&nbsp;<a href="http://www.designerscouch.org/" target="_blank">Designers&nbsp;Couch</a><wbr>&nbsp;<br /><a href="http://www.designerscouch.org/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/12.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/12.jpg" border='0'></a><wbr><wbr><br />13.&nbsp;<a href="http://www.afterlifenotes.com/" target="_blank">AfterLife&nbsp;Notes</a><wbr>&nbsp;<br /><a href="http://www.afterlifenotes.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/13.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/13.jpg" border='0'></a><wbr><wbr><br />14.&nbsp;<a href="http://designsvn.com/" target="_blank">Design&nbsp;Svn</a><wbr>&nbsp;<br /><a href="http://designsvn.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/14.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/14.jpg" border='0'></a><wbr><wbr><br />15.<a href="http://zipliner.com/" target="_blank">&nbsp;Zipliner</a><wbr>&nbsp;<br /><a href="http://zipliner.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/15.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/15.jpg" border='0'></a><wbr><wbr><br />16.<a href="http://www.sixcentral.com/" target="_blank">&nbsp;Six&nbsp;Central</a><wbr>&nbsp;<br /><a href="http://www.sixcentral.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/16.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/16.jpg" border='0'></a><wbr><wbr><br />17.&nbsp;<a href="http://hg.thejtsite.com/" target="_blank">Handsome&nbsp;&amp;&nbsp;Gorgeous</a><wbr>&nbsp;<br /><a href="http://hg.thejtsite.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/17.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/17.jpg" border='0'></a><wbr><wbr><br />18.<a href="http://www.iheartspaceships.com/" target="_blank">&nbsp;I&nbsp;Heart&nbsp;SpaceShips</a><wbr>&nbsp;<br /><a href="http://www.iheartspaceships.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/18.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/18.jpg" border='0'></a><wbr><wbr><br />19.&nbsp;<a href="http://jwplumbing.co.za/" target="_blank">JW&nbsp;Plumbing</a><wbr>&nbsp;<br /><a href="http://jwplumbing.co.za/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/19.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/19.jpg" border='0'></a><wbr><wbr><br />20.&nbsp;<a href="http://cubefrog.com/" target="_blank">Cube&nbsp;Frog</a><wbr>&nbsp;<br /><a href="http://cubefrog.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/20.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/20.jpg" border='0'></a><wbr><wbr><br />21.&nbsp;<a href="http://designatr.com/" target="_blank">Designatr</a><wbr>&nbsp;<br /><a href="http://designatr.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/21.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/21.jpg" border='0'></a><wbr><wbr><br />22.&nbsp;<a href="http://www.minuteglass.com/" target="_blank">Minute&nbsp;Glass</a><wbr>&nbsp;<br /><a href="http://www.minuteglass.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/22.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/22.jpg" border='0'></a><wbr><wbr><br />23.&nbsp;<a href="http://uberloops.com/" target="_blank">Uber&nbsp;Loops</a><wbr>&nbsp;<br /><a href="http://uberloops.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/23.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/23.jpg" border='0'></a><wbr><wbr><br />24.&nbsp;<a href="http://addressful.com/" target="_blank">Addressful</a><wbr>&nbsp;<br /><a href="http://addressful.com/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/24.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/24.jpg" border='0'></a><wbr><wbr><br />25.&nbsp;<a href="http://www.allisclear.com/clear-content/" target="_blank">Clear&nbsp;Content</a><wbr>&nbsp;<br /><a href="http://www.allisclear.com/clear-content/" target="_blank"><wbr></a><a href='http://dzineblog.com/wp-content/uploads/2009/04/l_soon/25.jpg' target='_blank'><img src="http://dzineblog.com/wp-content/uploads/2009/04/l_soon/25.jpg" border='0'></a><wbr><wbr><br /><br /><B><wbr>本文来源：</B><wbr><br /><a href="http://www.comsharp.com/" target="_blank">COMSHARP&nbsp;CMS</a><wbr>&nbsp;官方网站<br /><br /><B><wbr>素材来源：<br /></B><wbr><a href="http://dzineblog.com/2009/04/25-examples-of-cool-coming-soon-pages-part-ii.html" target="_blank">http://dzineblog.com/2009/04/25-examples-of-cool-coming-soon-pages-part-ii.html</a><wbr><br />http://launchsoon.com/gallery.php<br /></div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/429944392009376655712</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/429944392009376655712</guid>
    <pubDate>Tue, 7 Apr 2009 18:06:55 +0800</pubDate>
    <dcterms:modified>2009-05-09T11:04:25+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[11个优秀的WEB设计资源及设计趋势前瞻]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/42994439200937195712</link>
    <description><![CDATA[<div><br /><B><wbr>大家可能都有这样的体验，获得一个点子和灵感有时候真的很难，当你计划着开始你的新网站设计工程，当你急切地要找到一个震撼人心的网站设计灵感，你就不愿花太多时间而只想尽快开始做些事情。</B><wbr>但大多数时候，你的鼠标并不像你心想的那样移动，或者你的手并不受你那创造性思维的控制，亦或者可能就当你要尝试时却没有创造性的心境去工作。所以要让你这个有创意的人清醒一下，或者想出一些独创性的网站设计点子，抑或仅仅需要当前的设计趋势来激励鼓舞你自己，今天我们列举了11种超棒的资源和当前设计趋势的启示。在数量上来看，这个列表并不算长，但我向你保证，如果你开始仔细翻阅，它肯定会从专业的角度激励你产生创造性的设计构思，并鼓舞你去设计项目，你运用的设计方式使人们永远不会忘记你已经做到了！<br /><br /><B><wbr>1.<a href="http://sixrevisions.com/graphics-design/45-beautiful-free-fonts-for-modern-design-trends/" target="_blank">为现代设计趋势（设计的）45种自由字体&nbsp;</a><wbr></B><wbr><br /><wbr><img src="http://www.redbots.cn/wp-content/uploads/2009/04/45-beautiful-free-fonts-for-modern-design-trends.jpg" border='0' width='500' height='180'><wbr><br /><br />印刷术的合理选择，在一个设计中能够达到设计者想要达到的适当的主题和心境。在这个收集里，你会发现45种用在现代设计趋势中的上等字体。另外，你可以继续查看<a href="http://www.redbots.cn/resources/2009/03/05/8359.htm" target="_blank">最漂亮的100种字体</a><wbr>。<br /><br /><B><wbr>2.<a href="http://www.logoorange.com/logo-design-09.php" target="_blank">2009年的标语设计&amp;牌子趋势</a><wbr></B><wbr><br /><wbr><img src="http://lh3.ggpht.com/_Mj0gkiJCuH8/SdijcWnxzRI/AAAAAAAAEPk/jfqeCbnaDuQ/s800/logo-design-trends-2009.jpg" border='0' width='500' height='245'><wbr><br /><br />在这项收集中，你会找到2009年的标语设计和商标趋势。<br /><br /><B><wbr>3.<a href="http://www.redbots.cn/itnews/2009/01/19/7332.htm" target="_blank">2009年网站设计趋势</a><wbr></B><wbr><br /><wbr><img src="http://lh3.ggpht.com/_Mj0gkiJCuH8/SdijnYzt3dI/AAAAAAAAEQU/A2JnC3qHMc0/s800/web-design-trends-for-2009.jpg" border='0' width='500' height='392'><wbr><br /><br />在这个告示中，你会发现2009年网站设计趋势，比如当前的发展、新的设计元素和新的图表方法。<br /><br /><B><wbr>4.<a href="http://www.smashingmagazine.com/2009/01/21/current-web-design-trends-for-2009/" target="_blank">更多2009年的网站设计趋势</a><wbr></B><wbr><br /><a href="http://www.redbots.cn/resources/2009/04/05/9041.htm" target="_blank"><wbr><img src="http://lh4.ggpht.com/_Mj0gkiJCuH8/SdijmpbVDXI/AAAAAAAAEP8/zzNxBVtxSak/s800/more-web-design-trends-for-2009.jpg" border='0' width='500' height='194'><wbr></a><wbr><br /><br />这个告示是2009年网站设计趋势的第二部分。在这儿，你会找到在布局、视觉方法和设计元素这些项目上的2009年设计趋势。<br /><br /><B><wbr>5.<a href="http://www.webdesignerdepot.com/2009/03/50-popular-airline-logos/" target="_blank">50多个流行航线商标</a><wbr></B><wbr><br /><wbr><a href='http://lh3.ggpht.com/_Mj0gkiJCuH8/SdijcEzKimI/AAAAAAAAEPc/ZlFHMcRBxS4/s800/50-popular-airline-logos.jpg' target='_blank'><img src="http://lh3.ggpht.com/_Mj0gkiJCuH8/SdijcEzKimI/AAAAAAAAEPc/ZlFHMcRBxS4/s800/50-popular-airline-logos.jpg" border='0'></a><wbr><br /><br />在这篇文章中，你会在50多个流行航线商标中找到一个来唤起你的灵感。<br /><br /><B><wbr>6.<a href="http://www.webdesignerwall.com/trends/modern-sitemap-and-footer/" target="_blank">现代网站导航和页脚</a><wbr></B><wbr><br /><wbr><img src="http://lh5.ggpht.com/_Mj0gkiJCuH8/Sdijc2ahGJI/AAAAAAAAEP0/YrIiSzBuYVw/s800/modern-sitemap-and-footer.jpg" border='0' width='500' height='404'><wbr><br /><br />从大公司到小型网站这样一个个回顾20个网站是一件有趣且有用的事，这些网站为了加强实用性都聪明地编辑他们的页脚。<br /><br /><B><wbr>7.<a href="http://www.flashmint.com/wp/2009/03/new-web-design-trends-of-2009/" target="_blank">新2009年网站设计趋势</a><wbr></B><wbr><br /><wbr><img src="http://lh3.ggpht.com/_Mj0gkiJCuH8/SdijmkbQdXI/AAAAAAAAEQE/zzMQyGnGaZA/s800/new-web-design-trends-of-2009.jpg" border='0' width='500' height='374'><wbr><br /><br />在这个告示里，你会看到相片长廊、设计工作室、有关艺术的网站、乐队个人主页是如何融入了旧式的古典的和抽象派美术及草图这些元素。<br /><br /><B><wbr>8.<a href="http://www.1stwebdesigner.com/inspiration/logo-design-trends-2009/" target="_blank">2009年LOGO设计趋势&nbsp;-&nbsp;陈列橱窗</a><wbr></B><wbr><br /><wbr><img src="http://lh3.ggpht.com/_Mj0gkiJCuH8/Sdijc6v3vCI/AAAAAAAAEPs/WC3m47lZRm4/s800/logo-design-trends-2009-showcase.jpg" border='0' width='500' height='374'><wbr><br /><br />这个收集了一些LOGO设计观点，展示当前趋势下不同种类的商标设计，这些设计都能使你焕发灵感。如果你正在寻找一些已经制作好的LOGO资源，可以参看<a href="http://www.redbots.cn/resources/2009/02/03/7489.htm" target="_blank">50组最佳WEB设计及应用程序图标</a><wbr>。<br /><br /><B><wbr>9.<a href="http://sixrevisions.com/web_design/30-creative-examples-of-illustrations-in-web-design/" target="_blank">网站设计说明的30个有创意的例子</a><wbr></B><wbr><br /><wbr><img src="http://www.redbots.cn/wp-content/uploads/2009/04/21-01_bearded_reef.jpg" border='0' width='500' height='272'><wbr><br /><br />在这篇文章里，你将能够欣赏一些上等网站的例子，这些网站已经被选来用报章杂志元素来作为其设计的一部分。<br /><br /><B><wbr>10.<a href="http://naldzgraphics.net/inspiration/40-beautiful-examples-of-paper-websites-design/" target="_blank">40多个用纸设计网站的完美例子</a><wbr></B><wbr><br /><wbr><a href='http://lh5.ggpht.com/_Mj0gkiJCuH8/Sdijb3kVgNI/AAAAAAAAEPU/feaIMGs7egY/s800/40-beautiful-examples-of-paper-websites-design.jpg' target='_blank'><img src="http://lh5.ggpht.com/_Mj0gkiJCuH8/Sdijb3kVgNI/AAAAAAAAEPU/feaIMGs7egY/s800/40-beautiful-examples-of-paper-websites-design.jpg" border='0'></a><wbr><br /><br />这里有40多个网页设计的完美例子。你会看到一些最酷的网站用纸作为它们设计的一部分。如果您还需要更多WEB设计案例资源，可以继续查看<a href="http://www.redbots.cn/resources/2009/01/19/7296.htm" target="_blank">这篇</a><wbr>文章。<br /><br /><B><wbr>11.<a href="http://www.smashingmagazine.com/2009/01/07/textures-in-modern-web-design/" target="_blank">现代网站设计的纹理</a><wbr></B><wbr><br /><wbr><a href='http://lh4.ggpht.com/_Mj0gkiJCuH8/SdijnOkjmSI/AAAAAAAAEQM/bcKk8tftqOY/s800/textures-in-modern-web-design.jpg' target='_blank'><img src="http://lh4.ggpht.com/_Mj0gkiJCuH8/SdijnOkjmSI/AAAAAAAAEQM/bcKk8tftqOY/s800/textures-in-modern-web-design.jpg" border='0'></a><wbr><br /><br />在这个告示里，你将看到50个网站，在这些网站上，纹理被应用到了设计中，从而在某个程度上改善了网站。根据如何使用纹理来把这些网站归类。<br />&nbsp;<br /><B><wbr>感谢</B><wbr><a href="http://www.redbots.cn/" target="_blank"><B><wbr>Eric</B><wbr></a><wbr><B><wbr>的投递</B><wbr><br />新闻来源:原创</div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/42994439200937195712</comments>
    <slash:comments>2</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/42994439200937195712</guid>
    <pubDate>Tue, 7 Apr 2009 01:09:05 +0800</pubDate>
    <dcterms:modified>2009-04-07T01:09:05+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[优秀程序员的十个习惯]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/4299443920093394940713</link>
    <description><![CDATA[<div>&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;在这个世界上，有数百万的人热衷于软件开发，他们有很多名字，如：软件工程师（Software&nbsp;Engineer），程序员（Programmer），编码人（Coder），开发人员（Developer）。经过一段时间后，这些人能够成为一个优秀的编码人员，他们非常熟悉如何用计算机语言来完成自己的工作。但是，如果你要成为一个优秀的程序员，你还可以需要有几件事你需要注意，如果你能让下面十个条目成为你的习惯，那么你才能真正算得上是优秀程序员。<br />1.&nbsp;<B><wbr>学无止境</B><wbr>。就算是你有了10年以上的程序员经历，你也得要使劲地学习，因为你在计算机这个充满一创造力的领域，每天都会有很多很多的新事物出现。你需要跟上时代的步伐。你需要去了解新的程序语言，以及了解正在发展中的程序语言，以及一些编程框架。还需要去阅读一些业内的新闻，并到一些热门的社区去参与在线的讨论，这样你才能明白和了解整个软件开发的趋势。在国内，一些著名的社区例如：CSDN，ITPUB，CHINAUINX等等，在国外，建议你经常上一上digg.com去看看各种BLOG的聚合。<br />&nbsp;<br />2.&nbsp;<B><wbr>掌握多种语言</B><wbr>。程序语言总是有其最适合的领域。当你面对需要解决的问题时，你需要找到一个最适合的语言来解决这些问题。比如，如果你需要性能，可能C/C++是首选，如果你需要跨平台，可能Java是首选，如果你要写一个Web上的开发程序，那么PHP，ASP，Ajax，JSP可能会是你的选择，如果你要处理一些文本并和别的应用交互，可能Perl,&nbsp;Python会是最好的。所以，花一些时间去探索一下其它你并熟悉的程序语言，能让你的眼界变宽，因为你被武装得更好，你思考问题也就更为全面，这对于自己和项目都会有好的帮助。<br />3.&nbsp;<B><wbr>理性面对不同的操作系统或技术</B><wbr>。程序员们总是有自己心目中无可比拟的技术和操作系统，有的人喜欢Ubuntu，有的人喜欢Debian，还有的人喜欢Windows，以及FreeBSD，MacOSX或Solaris等等。看看我的BLOG(<a href="http://blog.csdn.net/haoel" target="_blank">http://blog.csdn.net/haoel</a><wbr>)中的那篇《<a href="http://blog.csdn.net/haoel/archive/2007/03/19/1533720.aspx" target="_blank">其实Unix很简单</a><wbr>》后的回复你就知道程序员们在维护起自己的忠爱时的那份执着了。只有一部分优秀的程序员明白不同操作系统的优势和长处和短处，这样，在系统选型的时候，才能做到真正的客观和公正，而不会让情绪影响到自己。同样，语言也是一样，有太多的程序员总是喜欢纠缠于语言的对比，如：Java和Perl。哪个刚刚出道的程序员没有争论去类似的话题呢？比如VC++和Delphi等等。争论这些东西只能表明自己的肤浅和浮燥。优秀的程序并不会执着于这些，而是能够理性的分析和理心地面对，从而才能客观地做出正确的选择。<br />4.&nbsp;<B><wbr>别把自己框在单一的开发环境中。</B><wbr>&nbsp;再一次，正如上面所述，每个程序员都有自己忠爱的工具和技术，有的喜欢老的（比如我就喜欢Vi编辑程序），而有的喜欢新的比如gedit或是Emacs等。有的喜欢使用像VC++一样的调试器，而我更喜欢GDB命令行方面的调式器。等等等等。程序员在使用什么样的工具上的争论还少吗？到处都是啊。使用什么样的工具本来无所谓，只要你能更好更快地达到你的目的。但是有一点是优秀程序员都应该了解的——那就是应该去尝试一下别的工作环境。没有比较，你永远不知道谁好谁不好，你也永远不知道你所不知道的。<br />5.&nbsp;<B><wbr>使用版本管理工具管理你的代码。</B><wbr>千万不要告诉我你不知道源码的版本管理，如果你的团队开发的源代码并没有版本管理系统，那么我要告诉你，你的软件开发还处于石器时代。赶快使用一个版式本管理工具吧。CVS&nbsp;是一个看上去平淡无奇的版本工具，但它是被使用最广的版本管理系统，Subversion&nbsp;是CVS的一个升级版，其正在开始接管CVS的领地。Git&nbsp;又是一个不同的版本管理工具。还有Visual&nbsp;SourceSafe等。使用什么样的版本管理工具依赖于你的团队的大小和地理分布，你也许正在使用最有效率或最没有效率的工具来管理你的源代码。但一个优秀的程序员总是会使用一款源码版本管理工具来管理自己的代码。如果你要我推荐一个，我推荐你使用开源的Subversion。<br />6.&nbsp;<B><wbr>是一个优秀的团队成员。</B><wbr>&nbsp;除非你喜欢独奏，除非你是孤胆英雄。但我想告诉你，今天，可能没有一个成熟的软件是你一个人能做的到的，你可能是你团队中最牛的大拿，但这并不意味着你就是好的团队成员。你的能力只有放到一个团队中才能施展开来。你在和你的团队成员交流中有礼貌吗？你是否经常和他们沟通，并且大家都喜欢和你在一起讨论问题？想一想一个足球队吧，你是这个队中好的成员吗？当别人看到你在场上的跑动，当别人看到你的传球和接球和抢断，能受到鼓舞吗？<br />7.&nbsp;<B><wbr>把你的工作变成文档。</B><wbr>&nbsp;这一条目当然包括了在代码中写注释，但那还仅仅不够，你还需要做得更多。有良好的注释风格的代码是一个文档的基础，他能够让你和你的团队容易的明白你的意图和想法。写下文档，并不仅仅是怕我们忘了当时的想法，而且还是一种团队的离线交流的方法，更是一种知识传递的方法。记录下你所知道的一切会是一个好的习惯。因为，我相信你不希望别人总是在你最忙的时候来打断你问问题，或是你在休假的时候接到公司的电话来询问你问题。而你自己如果老是守着自己的东西，其结果只可能是让你自己长时间地深陷在这块东西内，而你就更本不可以去做更多的事情。包括向上的晋升。你可能以为“教会徒弟能饿死师父”，但我告诉你，你的保守会让你失去更多更好的东西，请你相信我，我绝不是在这里耸人听闻。<br />8.&nbsp;<B><wbr>注意备份和安全。</B><wbr>&nbsp;可能你觉得这是一个“废话”，你已明白了备份的重要性。但是，我还是要在这里提出，丢失东西是我们人生中的一部份，你总是会丢东西，这点你永远无法避免。比如：你的笔记本电脑被人偷了，你的硬盘损坏了，你的电脑中病毒了，你的系统被人入侵了，甚至整个大楼被烧了，等等，等等。所以，做好备份工作是非常非常重要的事情，硬盘是不可信的，所以定期的刻录光盘或是磁带可能会是一个好的方法，网络也是不可信的，所以小心病毒和黑客，不但使用软件方面的安全策略，你更需要一个健全的管理制度。此外，尽量的让你的数据放在不同的地方，并做好定期（每日，每周，每月）的备份策略。<br />9.&nbsp;<B><wbr>设计要足够灵活。</B><wbr>&nbsp;可能你的需求只会要求你实现一个死的东西，但是，你作为一个优秀的程序，你应该随时在思考这个死的东西是否可以有灵活的一面，比如把一些参数变成可以配置的，把一些公用的东西形成你的函数库以便以后重用，是否提供插件方面的功能？你的模块是否要以像积木一样随意组合？如果要有修改的话，你的设计是否能够马上应付？当然，灵活的设计可能并不是要你去重新发明轮子，你应该尽可能是使用标准化的东西。所谓灵话的设计就是要让让考虑更多需求之外的东西，把需求中这一类的问题都考虑到，而不是只处理需求中所说的那一特定的东西。比如说，需要需要的屏幕分辨率是800×600，那么你的设计能否灵活于其他的分辨率？程序设计总是需要我们去处理不同的环境，以及未来的趋势。我们需要用动态的眼光去思考问题，而不是刻舟求剑。也许有一天，你今天写的程序就要移植到别的环境中去，那个时候你就能真正明白什么是灵活的设计了。<br />10.&nbsp;<B><wbr>不要搬起石头砸自己的脚。</B><wbr>程序员总是有一种不好的习惯，那就是总是想赶快地完成自己手上的工作。但情况却往往事已愿违。越是想做得快，就越是容易出问题，越是想做得快，就越是容易遗漏问题，最终，程序改过来改过去，按下葫芦起了瓢，最后花费的时间和精力反而更多。欲速而不达。优秀程序员的习惯是前面多花一些时间多作一些调查，试验一下不同的解决方案，如果时间允许，一个好的习惯是，每4个小时的编程，需要一个小时的休息，然后又是4个小时的编码。当然，这因人而异，但其目的就是让你时常回头看看，让你想一想这样三个问题：1）是否这么做是对的？2）是否这么做考虑到了所有的情况？3）是否有更好的方法？想好了再说，时常回头看看走过的路，时常总结一下过去事，会对你有很大的帮助。<br />以上是十条优秀程序员的习惯或行为规范，希望其可以对你有所帮助。<br />本文来源于网上phil的BLOG，但我在写作过程中使用了自己的语言和方法重新描述了一下这十条，所以，我希望你在转载的时候能够注明作者和出处以表示对我的尊重。谢谢！<br />&nbsp;<br />文章：<a href="http://codepad.classhelper.org/top-ten-habits-of-successful-programmers/223/" target="_blank">来源</a><wbr></div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/4299443920093394940713</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/4299443920093394940713</guid>
    <pubDate>Fri, 3 Apr 2009 21:49:40 +0800</pubDate>
    <dcterms:modified>2009-04-03T21:49:40+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[回忆积木屋]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/42994439200923075142840</link>
    <description><![CDATA[<div><B><wbr><font size=5 style="line-height:1.3em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;回忆积木屋</font><wbr></B><wbr>&nbsp;<br /><br /><B><wbr><font size=5 style="line-height:1.3em"><EMBED wmode="opaque" type='application/octet-stream' allowscriptaccess="never" allownetworking="internal" allowFullScreen="false" src="http://player.youku.com/player.php/sid/XNzYyMjEyMDg=/v.swf" width="640" height="480"/><wbr></font><wbr></B><wbr>&nbsp;<br /><br /><br /><br /><a href="http://imgsrc.baidu.com/baike/pic/item/b74124f3a4044370352acc81.jpg" target="_blank"><wbr></a><a href='http://imgsrc.baidu.com/baike/abpic/item/b74124f3a4044370352acc81.jpg' target='_blank'><img src="http://imgsrc.baidu.com/baike/abpic/item/b74124f3a4044370352acc81.jpg" border='0'></a><wbr><wbr>&nbsp;回忆的积木&nbsp;<br /><br />&nbsp;&nbsp;<B><wbr>片名：</B><wbr>积木之屋(La&nbsp;Maison&nbsp;en&nbsp;Petits&nbsp;Cubes)&nbsp;<br /><br />&nbsp;&nbsp;<B><wbr>导演：</B><wbr>Kunio&nbsp;Kato&nbsp;加藤久仁生&nbsp;(第一次获得奥斯卡提名)&nbsp;<br /><br />&nbsp;&nbsp;<B><wbr>编剧：</B><wbr>Kenya&nbsp;Hirata&nbsp;<br /><br />&nbsp;&nbsp;<B><wbr>制片人：</B><wbr>Masanori&nbsp;Kusakabe、Yuko&nbsp;Shin&nbsp;<br /><br />&nbsp;&nbsp;<B><wbr>作曲：</B><wbr>Kenji&nbsp;Kondo&nbsp;<br /><br />&nbsp;&nbsp;<B><wbr>片长：</B><wbr>12:03&nbsp;<br /><br />&nbsp;&nbsp;<B><wbr>动画技术类型：</B><wbr>二维/手绘结合电脑动画&nbsp;<br /><br />&nbsp;&nbsp;<B><wbr>出品时间：</B><wbr>2008&nbsp;<br /><br />&nbsp;&nbsp;<B><wbr>国家：</B><wbr>日本&nbsp;<br /><br />&nbsp;&nbsp;<B><wbr>剧情介绍：</B><wbr>&nbsp;<br /><br />&nbsp;&nbsp;法国Annecy动画节2008年获奖短片。&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;<a href="http://imgsrc.baidu.com/baike/pic/item/6f47039568e8a8287bf48091.jpg" target="_blank"><wbr></a><a href='http://imgsrc.baidu.com/baike/abpic/item/6f47039568e8a8287bf48091.jpg' target='_blank'><img src="http://imgsrc.baidu.com/baike/abpic/item/6f47039568e8a8287bf48091.jpg" border='0'></a><wbr><wbr>&nbsp;<br /><br /><br />&nbsp;&nbsp;《旅人日记》导演加藤久仁生新作，全片散发着浓浓的法式情调，造型和画面气氛的营造让人惊艳。&nbsp;<br /><br />&nbsp;&nbsp;一个老人住在大海中央。海水不断上涨，老人的房子随著海平面越盖越高，而他为了找回心爱的烟斗决定穿潜水衣潜回被海平面覆盖的旧屋中。当镜头随著老人越潜越深，旧时回忆也随之浮现。&nbsp;<br /><br />&nbsp;&nbsp;全片寓意深远，安静温暖，在08年昂西动画节的一大堆电脑作品中显得弥足珍贵。&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;Kunio&nbsp;Kato的获奖感言感言：&nbsp;<br /><br />&nbsp;&nbsp;“太重了。非常感谢你们。感谢你们，我的支持者们。感谢所有我们的工作人员。感谢制片人。感谢电影学院。感谢我的公司Robot，Domo&nbsp;arigato，Roboto先生。非常感谢你们。”</div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/42994439200923075142840</comments>
    <slash:comments>2</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/42994439200923075142840</guid>
    <pubDate>Mon, 30 Mar 2009 19:51:42 +0800</pubDate>
    <dcterms:modified>2009-03-30T19:51:42+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[15个最受Web开发者欢迎的文本编辑器]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/4299443920092305486840</link>
    <description><![CDATA[<div>对许多开发者来说，在开发复杂的Web应用程序、编辑CSS文件或者配置服务器上的参数等工作时，一个好用的文本编辑器显得相当重要。最近，我们通过600多人参与的投票得出了时下一批最受开发者欢迎的文本编辑器。本文将介绍15个最受欢迎的编辑器。<br />15.&nbsp;<a href="http://www.scintilla.org/SciTE.html" target="_blank">SciTE</a><wbr><center><a href="http://www.scintilla.org/SciTE.html" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/2244140.png" border='0' width='550' height='300'><wbr></a><wbr></center><center><a href="http://www.scintilla.org/SciTEDownload.html" target="_blank">下载SciTE</a><wbr></center><br /><I><wbr>SciTE，</I><wbr>一个支持Windows和Linux平台使用的开源的文本编辑器，开始时只是为了演示<a href="http://www.scintilla.org/" target="_blank">Scintilla</a><wbr>强大功能而开发的。此后它成为一个功能全面的编辑器。你可以通过用户自定义的<a href="http://groups.google.com/group/scite-interest/web/extras?pli=1" target="_blank">配置文件</a><wbr>来扩展默认功能。<br />14.&nbsp;<a href="http://www.editplus.com/" target="_blank">EditPlus</a><wbr><center><a href="http://www.editplus.com/" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/2244141.png" border='0' width='550' height='300'><wbr></a><wbr></center><center><a href="http://www.editplus.com/download.html" target="_blank">下载EditPlus</a><wbr></center><I><wbr>EditPlus</I><wbr>&nbsp;是一个Windows平台上针对HTML和编码的文本编辑。它具备对HTML、CSS、PHP和JavaScript代码高亮的功能，自动补具备一个内置的Web浏览器可用来预览正在开发的网页。&nbsp;<br />&nbsp;<br />13.&nbsp;<a href="http://www.e-texteditor.com/" target="_blank">E&nbsp;-&nbsp;TextEditor</a><wbr><center><a href="http://www.e-texteditor.com/" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/2244142.jpg" border='0' width='550' height='300'><wbr></a><wbr></center><center>&nbsp;[url=https://www.plimus.com/jsp/buynow.jsp?contractId=1646065]下载E&nbsp;-&nbsp;TextEditor[/url]</center><I><wbr>E&nbsp;-&nbsp;TextEditor</I><wbr>,&nbsp;常被简称为&nbsp;<I><wbr>E</I><wbr>,&nbsp;是&nbsp;<a href="http://macromates.com/" target="_blank">TextMate</a><wbr>&nbsp;的&nbsp;Windows版本.它具备许多有让开发者很贴心的功能，例如它具备个人版本控制系统可以让开发者管理不同版本的文档，并且支持定期自动保存，以提高开发的效率和安全性。这是是关于E的快捷键&nbsp;<a href="http://www.e-texteditor.com/wiki/index.php/Cheatsheet" target="_blank">Keyboard&nbsp;Shortcuts&nbsp;Cheatsheet</a><wbr>&nbsp;。<br />12.&nbsp;<a href="http://www.gnu.org/software/emacs/" target="_blank">GNU&nbsp;Emacs</a><wbr><center><a href="http://www.gnu.org/software/emacs/" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/2244143.png" border='0' width='550' height='300'><wbr></a><wbr></center><center><a href="http://www.gnu.org/software/software.html" target="_blank">下载GNU&nbsp;Emacs</a><wbr></center><I><wbr>GNU&nbsp;Emacs</I><wbr>&nbsp;是一个开源，跨平台(支持Linux,&nbsp;Mac&nbsp;OS&nbsp;X,&nbsp;和&nbsp;Windows)&nbsp;的文本编辑器.&nbsp;Emacs&nbsp;可以根据你的需要通过诸如&nbsp;<a href="http://www.gnu.org/software/emacs/manual/html_node/emacs/Debuggers.html" target="_blank">debuggers</a><wbr>&nbsp;和&nbsp;&nbsp;<a href="http://www.gnu.org/software/emacs/manual/org.html" target="_blank">note&nbsp;managers/organizers</a><wbr>&nbsp;等模块进行高度的扩展和个性化定制，实现源码高亮、支持多种文件格式的编辑等功能。<br />11.&nbsp;<a href="http://projects.gnome.org/gedit/" target="_blank">gedit</a><wbr><center><a href="http://projects.gnome.org/gedit/" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/2244144.png" border='0' width='550' height='300'><wbr></a><wbr></center><center><a href="http://ftp.acc.umu.se/pub/GNOME/sources/gedit/" target="_blank">下载gedit</a><wbr></center><I><wbr>gedit</I><wbr>&nbsp;是<a href="http://www.gnome.org/" target="_blank">GNOME</a><wbr>&nbsp;(Linux和UNIX平台的桌面图形界面)的官方文本编辑器。它具备一系列让程序员喜欢丰富的参数和功能，如支持代码高席和多语言，支持UTF-8文本，远程编辑和文件备份等。此外它还可以通过&nbsp;<a href="http://projects.gnome.org/gedit/plugins.html" target="_blank">插件系统</a><wbr>&nbsp;来进行扩展。<br />10.&nbsp;<a href="http://www.textpad.com/" target="_blank">TextPad</a><wbr><center><a href="http://www.textpad.com/" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/2244145.png" border='0' width='550' height='300'><wbr></a><wbr></center><center><a href="http://www.textpad.com/download/index.html" target="_blank">下载TextPad</a><wbr></center><I><wbr>TextPad</I><wbr>&nbsp;是一个Windows系统上的通用文本编辑器。它具备许多特色功能，例如可以对10门语言的编写检查，一个预热功能实现打开上次工作的文件，&nbsp;键盘记录器以实现实现批处理从而节省许多重复的工作。<br />9.&nbsp;<a href="http://www.ultraedit.com/" target="_blank">UltraEdit</a><wbr><center><a href="http://www.ultraedit.com/" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/2244146.png" border='0' width='550' height='300'><wbr></a><wbr></center><center><a href="http://www.ultraedit.com/downloads/ultraedit_download.html" target="_blank">下载UltraEdit&nbsp;</a><wbr></center><I><wbr>UltraEdit</I><wbr>&nbsp;是一个Windows平台深受开发者欢迎的文本编辑器。它支持多种语言，如PHP,&nbsp;JavaScript,&nbsp;Perl,&nbsp;C/C++，具备内置的文件管理功能，著名的搜索和替换功能。通过它的&nbsp;<a href="http://www.textpad.com/products/textpad/features.html" target="_blank">属性列表</a><wbr>&nbsp;可以清楚地了解到&nbsp;UltraEdit&nbsp;的功能。<br />8.&nbsp;<a href="http://www.adobe.com/products/dreamweaver/" target="_blank">Dreamweaver</a><wbr><center><a href="http://www.adobe.com/products/dreamweaver/" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/2244147.png" border='0' width='550' height='300'><wbr></a><wbr></center><center><a href="http://www.adobe.com/downloads/" target="_blank">下载Dreamweaver&nbsp;</a><wbr></center><I><wbr>Dreamweaver</I><wbr>&nbsp;是Adobe公司推出的一个面向网页设计师和开发者的功能全面的集成开发工具。它具备内置的文本编辑功能，如代码高亮，智能代码补齐，校验等。<br />7.&nbsp;<a href="http://www.activestate.com/komodo_edit/" target="_blank">Komodo&nbsp;Edit</a><wbr>&nbsp;/&nbsp;<a href="http://www.activestate.com/komodo/" target="_blank">Komodo&nbsp;IDE</a><wbr><center><a href="http://www.activestate.com/komodo_edit/" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/2244148.png" border='0' width='550' height='300'><wbr></a><wbr></center><center><a href="http://www.activestate.com/komodo_edit/comparison/" target="_blank">下载Komodo&nbsp;Edit&nbsp;</a><wbr></center><I><wbr>Komodo&nbsp;Edit</I><wbr>&nbsp;是一个开源的跨平台编辑器，它支持Windows、Linux和&nbsp;Mac。它通常跟Komodo&nbsp;集成开发环境一起发布，也可以单独使用。<br />6.&nbsp;<a href="http://www.aptana.com/" target="_blank">Aptana</a><wbr><center><a href="http://www.aptana.com/" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/2244149.jpg" border='0' width='550' height='300'><wbr></a><wbr></center><center><a href="http://www.aptana.com/studio/download" target="_blank">下载Aptana</a><wbr></center><I><wbr>Aptana</I><wbr>&nbsp;是免费的全功能Web开发工具，它可以独立运行，也可以作为<a href="http://www.eclipse.org/" target="_blank">Eclipse</a><wbr>的插件。它内置了对诸如jQuery、MooTools和Prototype等流行函数库的支持。<br />5.&nbsp;<a href="http://www.pspad.com/en/" target="_blank">PSPad</a><wbr><center><a href="http://www.pspad.com/en/" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/22441410.png" border='0' width='550' height='300'><wbr></a><wbr></center><center><a href="http://www.pspad.com/en/download.php" target="_blank">PSPad&nbsp;download&nbsp;page</a><wbr></center><I><wbr>PSPad</I><wbr>&nbsp;是一个Windows平台上的免费程序编辑器。它可以让你保持上一次编辑状态，这样在你下次打开编辑器的时候可以直接显示原来的文件。此外它还支持通过FTP进行远程编辑，支持多文件的比较等。<br />4.&nbsp;<a href="http://www.vim.org/" target="_blank">Vim</a><wbr><center><a href="http://www.vim.org/" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/22441411.png" border='0' width='550' height='300'><wbr></a><wbr></center><center><a href="http://www.vim.org/download.php" target="_blank">下载Vim</a><wbr></center><I><wbr>Vim</I><wbr>&nbsp;是一个支持Linux、&nbsp;Windows和&nbsp;Mac&nbsp;OS&nbsp;的高级编辑器。它设计的目的是尽可能地提高文本编辑的效率，Vim&nbsp;还是一个&nbsp;<a href="http://charityware.info/" target="_blank">慈善软件</a><wbr>，所有对该软件的捐献都将是对慈善的支持。<br />&nbsp;<br />3.&nbsp;<a href="http://www.panic.com/coda/" target="_blank">Coda</a><wbr><center><a href="http://www.panic.com/coda/" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/22441412.jpg" border='0' width='550' height='300'><wbr></a><wbr></center><center><a href="http://www.panic.com/coda/" target="_blank">下载Coda</a><wbr></center><I><wbr>Coda</I><wbr>&nbsp;是Mac操作系统上的网页开发工具。它是功能强大且优雅的文本编辑器：代码高亮、显示行数、自动补齐等。<br />2.&nbsp;<a href="http://macromates.com/" target="_blank">TextMate</a><wbr><center><a href="http://macromates.com/" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/22441413.png" border='0' width='550' height='300'><wbr></a><wbr></center><center><a href="http://license.macromates.com/" target="_blank">TextMate&nbsp;download&nbsp;page</a><wbr></center><I><wbr>TextMate</I><wbr>&nbsp;是一个面向网页设计师和开发者的功能丰富的Mac平台编辑器。它可以让用户定制自己的&nbsp;<a href="http://manual.macromates.com/en/themes#themes" target="_blank">风格界面</a><wbr>，&nbsp;<a href="http://manual.macromates.com/en/working_with_text#auto-paired_characters_quotes_etc" target="_blank">自动文本补齐</a><wbr>，以及可以在文档中运行Shell命令等。<br />1.&nbsp;<a href="http://notepad-plus.sourceforge.net/uk/site.htm" target="_blank">Notepad++</a><wbr><center><a href="http://notepad-plus.sourceforge.net/uk/site.htm" target="_blank"><wbr><img src="http://www.kooxo.com/uploads/allimg/090328/22441414.png" border='0' width='550' height='300'><wbr></a><wbr></center><center><a href="http://notepad-plus.sourceforge.net/uk/download.php" target="_blank">下载Notepad++</a><wbr></center>投票结果显示Notepad++&nbsp;是最受开发者欢迎的编辑器。它是一个基于GPL授权在&nbsp;Windows&nbsp;发布的编辑顺，具备许多特色的功能，其中最著名的是：录制键盘记录，强大的搜索替换功能支持正则表达式，支持多种编程语言等。<br />&nbsp;<br />源文：http://sixrevisions.com/web-development/the-15-most-popular-text-editors-for-developers/<br />翻译整理：酷秀网&nbsp;<a href="http://www.kooxo.com/resourse/tools/200903/28-89.html" target="_blank"><font color=#000000 style="line-height:1.3em">http://www.kooxo.com/resourse/tools/200903/28-89.h&nbsp;tml</font><wbr></a><wbr></div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/4299443920092305486840</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/4299443920092305486840</guid>
    <pubDate>Mon, 30 Mar 2009 17:48:06 +0800</pubDate>
    <dcterms:modified>2009-03-30T17:48:06+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[IBM吞Sun：悲伤的程序员]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/42994439200922621757840</link>
    <description><![CDATA[<div><a href="http://www.cnbeta.com/topics/87.htm" target="_blank"><wbr></a><a href='http://img.cnbeta.com/topics/ibm.png' target='_blank'><img src="http://img.cnbeta.com/topics/ibm.png" border='0'></a><wbr><wbr>&nbsp;<br />与此前硅谷两家“新贵”微软试图收购雅虎的交易案不同，“蓝色巨人”IBM与Sun之间交易过程的基调是保持绝对沉默。&nbsp;尽管Sun的创始人、董事长斯科特·麦克尼利(Scott&nbsp;Mcnealy)是著名的硅谷“狂人”，以讽刺和抨击IBM、微软这样的竞争对手而闻名，比雅虎的创始人杨致远要张扬许多，但与雅虎和微软的激烈对抗相比，面对东海岸来的IBM，他此次也是默不作声。<br />目前收购达成与否尚未可知，由于收购前期的调查过程复杂，这一交易的正式宣布可能还要等待一段时间，&nbsp;IBM和Sun公司官方均对市场传闻不予回应，双方出乎寻常的沉默态度，让业界和投资者都嗅到了交易的不同味道。&nbsp;<br /><br /><B><wbr>悲伤的程序员</B><wbr>&nbsp;<br /><br />Sun初始的全名是“斯坦福大学网络”(Stanford&nbsp;University&nbsp;Network)，它崛起于1982年的斯坦福大学校园的几个校友之手。曾在硅谷确立了与微软、惠普、思科一样的“江湖地位”，成为整个IT世界，屈指可数的“大玩家”之一。&nbsp;<br /><br />Sun把自己的股票代码选择为Java，这种程序语言遍布了互联网和手机平台，无数软件程序利用其编写而成。&nbsp;<br /><br />“IBM要收购Sun了，每一个程序员，看到这条消息，心情或许都是相当复杂的。”一位计世资讯分析师表示，因为小到一个手机上的小游戏，一个Web2.0的网页功能，背后都有了Sun的身影。&nbsp;<br /><br />已经有消息称，由于担心IBM对Java进行控制，甲骨文和SAP可能会弃用Java。&nbsp;<br /><br />Java和MySQL软件技术已经被谷歌、雅虎和Web2.0公司广泛应用，不少开发人员担心IBM的并购会影响到Sun业已建成的生态系统。&nbsp;<br /><br />从通用电器、中国电信和通用汽车，到几个人的手机游戏公司，均是IBM或者Sun的客户以及开发者。这些方面都足以说明，IBM对Sun发起其成立98年来规模最大的并购，对硅谷乃至全球IT的底层系统产生多么大的震动。&nbsp;<br /><br /><B><wbr>硅谷迷雾</B><wbr>&nbsp;<br /><br />整个交易仍蒙上了一层迷雾。据国外媒体报道，知情人士称，IBM仍在与Sun就收购进行尽职调查，目前尚未达成交易，谈判很可能延至下周，但也有可能在本周宣布交易。&nbsp;<br /><br />服务器销售收入约占Sun全部销售额的近一半，其客户包括AT&amp;T和中国移动等。由于经济衰退加深导致企业收缩IT预算，上季度全球服务器销售额下跌了14%。过去52周，Sun股价下跌了70%以上。&nbsp;<br /><br />戴尔公司CEO迈克尔·戴尔近日则表示，IBM可能收购Sun的传言为戴尔公司创造了机遇。因为对Sun基于Solaris系统服务器未来的疑虑，将会加快其客户流失到戴尔公司，选择该公司基于X86的Linux服务器。&nbsp;<br /><br />服务器的市场竞争日趋激烈，思科上周就宣布进军服务器市场。事实上，一直以来，有关于Sun将被IBM、惠普、戴尔或思科收购的传闻就从未中断。&nbsp;<br /><br />IDC公司数据显示，去年第四季度，IBM是世界最大的服务器制造商，市场份额为36.3%，惠普为29%，戴尔为10.6%，Sun为9.3%，富士通是4.2%。惠普CEO赫德对于IBM和Sun的交易表现出了不以为然的态度，只是宣称不会影响惠普。他还不愿透露Sun是否曾找到惠普商讨交易事宜。&nbsp;<br /><br />经济冬天来临之时，Sun此前就计划裁员6000人，约占员工总数的18%，而且Sun还在亏损。IBM收购Sun的业务究竟是互补还是重叠，在业界有较大争议。&nbsp;<br /><br />Tholons咨询公司分析师认为，IBM希望成为全部IT产品和服务的一站式提供商，无论是硬件、软件服务还是咨询和解决方案。过去几年，IBM一直在贯彻该战略，如果有了Sun，IBM将进一步加快该战略的实施。&nbsp;<br /><B><wbr><br />重叠还是互补？</B><wbr>&nbsp;<br /><br />软件方面，Sun与IBM的产品线重叠严重，甚至有直接冲突。Sun有的软件IBM都有，Sun除了Java外，其他产品如服务器操作系统Solaris，数据库MySQL等都和IBM有直接竞争。&nbsp;<br /><br />如果真的被收购，这些产品将何去何从？IBM究竟是雪藏这些竞争技术，还是继续支持，不得而知。&nbsp;<br /><br />硬件方面，规模530亿美元的服务器市场是Sun与IBM最大的互补力量。根据IDC的数据，2008年全年，IBM和Sun分列服务器市场第一和第四位，份额分别为31.9%和10.13%，惠普和戴尔分列二、三位，份额分别为29.5%和11.6%。如果IBM收购SUN成功，服务器市场份额IBM将形成垄断的局面，直接面对反垄断审查的障碍。而且，Sun的Solaris操作系统目前运行在惠普服务器、Sun服务器和IBM的服务器上。&nbsp;<br /><br />另外，存储业务方面，IBM和Sun的并购面临的最大问题就是磁带业务，IBM和Sun是全球前两大数据磁带厂商的整合。而在大型主机磁盘存储方面，美国司法部就曾否决了IBM收购StorageTek大型主机磁盘存储业务的提议，之后Sun收购了StorageTek。&nbsp;<br /><br />启明公司分析师表示，大家可以看到Sun和IBM之间的内在固有矛盾，前者的开源气质和后者持续不断在专利所有权上的行动足以看出这种格格不入。他指出，尽管看起来IBM似乎也是一个开源的强有力支持者，但是这个蓝色巨人也只是在为其自家服务之时才会全身心拥抱开源操作系统。&nbsp;<br /><br /><B><wbr>为了云计算？</B><wbr>&nbsp;<br /><br />也许“云计算”(即大型计算服务中心)才是IBM最为看重并购Sun的未来战略。&nbsp;<br /><br />云计算的逐步兴起，使许多提供企业计算和互联网服务基础设施领域的巨头正在更加重视集中化和规模化，主导全世界IT的公司必须要变得越来越庞大，才能应对云计算对于IT大规模建设的要求。&nbsp;<br /><br />Sun公司CEO施瓦茨近期表示：“云计算无疑是目前最火的一个名词。云计算是对网格计算、效用计算和按需计算的重新命名。这是我们所有业务的核心。”&nbsp;<br /><br />在施瓦茨看来，任何人要打造“云”，需要的不仅仅是服务器，还有数据中心的主干部分，以及在硬件基础上的操作系统。因此，Sun将要推出能够控制存储系统、网络和虚拟化的系统软件。Sun还有全面的解决方案，可以满足所有需求。惠普、IBM、戴尔、思科、微软这样的公司，他们有的有硬件，有的有操作系统和平台，但均有无法超越的局限。&nbsp;<br /><br />Sun将加强IBM的优势，打压惠普、收购戴尔和思科的挑战。惠普过去几年收购了几家软件公司，以扩张数据中心管理业务。去年，惠普以130多亿美元收购信息技术服务提供商EDS，在IT外包服务领域对占据首位的IBM发起了强大的挑战。&nbsp;<br />转载：第一财经日报</div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/42994439200922621757840</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/42994439200922621757840</guid>
    <pubDate>Thu, 26 Mar 2009 14:17:57 +0800</pubDate>
    <dcterms:modified>2009-03-26T14:17:57+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[游戏杆周期表]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/4299443920092251152840</link>
    <description><![CDATA[<div><B><wbr></B><wbr><center>日前在Flickr网站上，一位署名Pixel&nbsp;Fantasy的网友放出了自己制作的一张匠心独具的图片，将历史上各种游戏主机手柄的按键设计图样，以化学元素周期表的形式排列了出来。</center>该“手柄元素周期表”的V1版本已有51种元素，从1972年的Odyssey，一直到2006年推出的当代三大主机。其中，1到35位的主表包含各种家用主机，36到51位的附表则是掌机的发展历程。&nbsp;<br />作者表示，他还会不断增加各种新款主机手柄样式，并将历史上的各种手柄变种设计也纳入其中。目前，“周期表”的2.0版本已经在制作当中。&nbsp;<br /><center><a href="http://news.mydrivers.com/img/20090325/04120437.jpg" target="_blank"><wbr><img src="http://news.mydrivers.com/img/20090325/S04120437.jpg" border='0' width='550' height='485'><wbr></a><wbr>&nbsp;</center><center><a href="http://news.mydrivers.com/img/20090325/04120437.jpg" target="_blank">点击放大</a><wbr></center><center>&nbsp;&nbsp;<a href="http://www.flickr.com/photos/techthis/3368683205/" target="_blank">原图下载</a><wbr></center></div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/4299443920092251152840</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/4299443920092251152840</guid>
    <pubDate>Wed, 25 Mar 2009 23:05:02 +0800</pubDate>
    <dcterms:modified>2009-03-25T23:05:02+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[2009世界顶级杀毒软件排行榜]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/4299443920092243020840</link>
    <description><![CDATA[<div><B><wbr>金奖：BitDefender（比特梵德）</B><wbr>&nbsp;<br />这是BitDefender连续三年获得了第一了。BitDefender&nbsp;这个名不见经传的来自罗马尼亚的老牌杀毒软件，功能十分强大，去年三月BitDefender推出中文版是曾免费提供1年序列号。不过就算是现在也是同类杀毒软件中价格最为便宜的了，而且现在还有买一年送一年的优惠活动。&nbsp;<br /><a href="http://bit361.com/BitDown.aspx" target="_blank"><font color=#006666 style="line-height:1.3em">BitDefender最新简体中文版下载地址</font><wbr></a><wbr>&nbsp;<br /><br /><B><wbr>银奖：Kaspersky（卡巴斯基）</B><wbr>&nbsp;<br />鼎鼎大名的Kaspersky（卡巴斯基）杀毒软件来源于俄罗斯，&nbsp;是世界上最优秀、最顶级的网络杀毒软件，查杀病毒性能远高于同类产品。望月是卡巴斯基的重度使用者，之前曾介绍过<a href="http://wangyueblog.com/2009/03/13/kaspersky-2009-kis3/" target="_blank"><font color=#006666 style="line-height:1.3em">卡巴斯基三年版</font><wbr></a><wbr>，可以用一年的价格购买三年的升级使用权，同样也是个不错的选择。&nbsp;<br /><a href="http://www.kaspersky.com.cn/KL-Downloads/KL-Product2009.htm" target="_blank"><font color=#006666 style="line-height:1.3em">卡巴斯基2009最新版下载</font><wbr></a><wbr>&nbsp;<br /><br /><B><wbr>铜奖：Webroot&nbsp;Antivirus</B><wbr>&nbsp;<br /><B><wbr>Webroot&nbsp;Antivirus&nbsp;是今年新上榜的反病毒软件，在国外广泛流行，在国内的介绍还不多。主要特点是出色的反间谍保护能力，Spy&nbsp;Sweeper&nbsp;具有自动侦测功能，可以移除所有一般形式的间谍程式，包含特洛伊木马、系统监视、键盘纪录及广告软件。</B><wbr>&nbsp;<br /><B><wbr><a href="http://www.webroot.com/En_US/consumer-downloads.html?WRSID=a6543f54dfbba38cbee8ee8ff81c9ac7" target="_blank"><font color=#006666 style="line-height:1.3em">Webroot&nbsp;Antivirus&nbsp;6.0&nbsp;下载地址</font><wbr></a><wbr>&nbsp;</B><wbr><br /><br /><B><wbr>第四名：G&nbsp;DATA&nbsp;AntiVirus</B><wbr>&nbsp;<br />同样为今年刚刚上榜的杀毒软件，G&nbsp;DATA&nbsp;AntiVirus&nbsp;也就是大家所说的Antiviruskit（AVK），德国G&nbsp;DATA公司出品的双引擎杀软，向来以高检出率闻名，G&nbsp;DATA一直是欧洲使用最多的杀毒软件，详细信息可以访问其<a href="http://www.gdata.de/" target="_blank"><font color=#006666 style="line-height:1.3em">官方网站</font><wbr></a><wbr>。&nbsp;<br /><br /><B><wbr>第五名：ESET&nbsp;NOD32</B><wbr>&nbsp;<br />NOD32去年排名第三，今年又下滑到了前年的第五名。360安全卫士也和NOD32合作推出了免费的半年版。看来是看好了卡巴斯基和360安全卫士合作的显著效果。&nbsp;<br /><a href="http://www.eset.com/download/index.php" target="_blank"><font color=#006666 style="line-height:1.3em">ESET&nbsp;NOD32下载页面</font><wbr></a><wbr>&nbsp;<br /><br /><B><wbr>第六名：ParetoLogic&nbsp;Anti-Virus&nbsp;PLUS</B><wbr>&nbsp;<br />来自微软的产品，也是今年才上榜，来源于Windows&nbsp;Marketpiece。&nbsp;<br /><br /><B><wbr>第七名：AVG&nbsp;Anti-Virus&nbsp;</B><wbr><br />AVG&nbsp;Anti-Virus&nbsp;是来自于捷克Grisoft&nbsp;公司所开发的一套防毒软件，自&nbsp;1992&nbsp;年成立以来，已有着十几年开发防毒软件的经验，它的安全产品广泛地被欧美以及大洋洲地区使用。它得到了&nbsp;ICA&nbsp;实验室认证并获得&nbsp;2005&nbsp;年&nbsp;Virus&nbsp;bulletin&nbsp;的&nbsp;VB100%&nbsp;奖（即百分百查杀&nbsp;Virus&nbsp;bulletin&nbsp;所公布的病毒库，国际上只有少数几家防毒厂商能获此殊荣）。2008年，AVG&nbsp;推出的&nbsp;8.0&nbsp;版本则颠覆杀毒专长的&nbsp;Anti-Virus&nbsp;版，另辟网络安全的新途，重点宣传&nbsp;Internet&nbsp;Security&nbsp;系列产品，这一举动也正赶上了&nbsp;2008&nbsp;年网络混合威胁浪潮。&nbsp;<br /><br /><B><wbr>第八名：Vipre&nbsp;Antivirus&nbsp;+&nbsp;Antispyware</B><wbr>&nbsp;<br />Vipre取自&quot;Viperidae&quot;译为“蝰(kuí)&nbsp;科”，其LOGO就是蝰蛇。VIPRE是一新推出的杀软，它包含了antivirus,&nbsp;antispyware,&nbsp;anti-rootkit以及其它的技术，在世界权威机构VB测评中排行第5。&nbsp;<br />Vipre&nbsp;Antivirus&nbsp;+&nbsp;Antispyware官方下载地址：<a href="http://www.sunbeltsoftware.com/Home-Home-Office/VIPRE/" target="_blank"><font color=#006666 style="line-height:1.3em">http://www.sunbeltsoftware.com/Home-Home-Office/VIPRE/</font><wbr></a><wbr>&nbsp;<br /><br /><B><wbr>第九名：F-Secure&nbsp;Anti-Virus</B><wbr>&nbsp;<br />来自芬兰的杀毒软件，功能不错。去年排名第五，集合&nbsp;AVP、LIBRA、ORION、DRACO&nbsp;四套杀毒引擎,其中一个就是&nbsp;Kaspersky&nbsp;的杀毒内核，而且青出于蓝胜于蓝。&nbsp;<br />F-Secure&nbsp;Anti-Virus下载页面：<a href="http://www.f-secure.com/en_EMEA/downloads/" target="_blank"><font color=#006666 style="line-height:1.3em">http://www.f-secure.com/en_EMEA/downloads/</font><wbr></a><wbr>&nbsp;<br /><br /><B><wbr>第十名：Trend&nbsp;Micro&nbsp;AntiVirus&nbsp;</B><wbr><br />大名鼎鼎的趋势科技，就不多做介绍了。&nbsp;<br />Trend&nbsp;Micro&nbsp;AntiVirus&nbsp;中文版下载：<a href="http://www.trendmicro.com/download/zh-cn/" target="_blank"><font color=#006666 style="line-height:1.3em">http://www.trendmicro.com/download/zh-cn/</font><wbr></a><wbr>&nbsp;<br /></div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/4299443920092243020840</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/4299443920092243020840</guid>
    <pubDate>Tue, 24 Mar 2009 03:00:20 +0800</pubDate>
    <dcterms:modified>2009-03-24T03:00:20+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[几种3G系统的速率比较]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/4299443920092179947840</link>
    <description><![CDATA[<div>新闻来源:原创&nbsp;<br />从直接的消息和评价上，给人的印象是中国移动的3G网络－－TD系统的速率比其他人处于劣势。&nbsp;<br /><B><wbr>近期收集了一些数据，并且查看了一些文章，其实实际情况不是这样。</B><wbr><br />&nbsp;<br /><B><wbr>1、3种3G制式的理论速率</B><wbr>&nbsp;<br /><br />CDMA2000&nbsp;EVDO&nbsp;<br />rel-0&nbsp;下行2.4M&nbsp;&nbsp;&nbsp;上行156K&nbsp;&nbsp;&nbsp;&nbsp;(bit/s)&nbsp;<br />rel-a&nbsp;下行3.1M&nbsp;&nbsp;&nbsp;上行1.8M&nbsp;&nbsp;&nbsp;&nbsp;(bit/s)&nbsp;－－－－－－－目前的成熟版本，电信采用该技术&nbsp;<br />rel-b&nbsp;下行3.1M*3=9.3M&nbsp;上行1.8M*3=5.4M&nbsp;&nbsp;(bit/s)&nbsp;<br /><br />wcdma&nbsp;&nbsp;HSPA&nbsp;&nbsp;下行14.4M&nbsp;&nbsp;上行5.75M－－－－－－－－目前的成熟版本，联通采用该技术&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HSPA+&nbsp;下行28M&nbsp;&nbsp;&nbsp;&nbsp;上行5.8M&nbsp;<br /><br />TD-SCDMA&nbsp;384K下行&nbsp;128K上行&nbsp;<br />TD-HSDPA&nbsp;2.8M下行（一个载频5个时限捆绑，一个时隙560k）&nbsp;128K上行－－－－－－－－－－目前的成熟版本，移动采用的技术&nbsp;<br />TD-HSUPA&nbsp;2.8M下行&nbsp;1.6M上行－－－－－－－－－今年下半年/明年上半年移动将采用的版本&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><B><wbr>2、实际用户使用能够享受到的速率</B><wbr>&nbsp;<br /><br />从理论速率上看，TD网络单载频不如CDMA2000和WCDMA，但是理论速率到达的前提是一个载频完全给数据通信使用且给一个用户独享。&nbsp;<br /><br />在CDMA网络下，一个用户实际能够享受到的速率还要看网络的实际资源配置和用户数量。&nbsp;<br /><br />CDMA2000和WCDMA都属于自干扰系统，用户之间自干扰现象很明显，特别是用户进行HSDPA业务时，终端都是以最大功率发射的，这样造成的干扰也最大，&nbsp;<br /><br />致使各个用户实际能得到的速率要比理论速率低很多。另外这两个系统中的话音用户也会对HSDPA用户形成干扰，这个量可是相当大的。&nbsp;<br /><br />而TD系统中话音用户对HSDPA用户干扰基本没有，用户能够有较多的机会得到接近理论值的HSDPA速率。如此一来，在用户形成一定规模的时候，&nbsp;<br /><br />TD的上网速率将未必比CDMA2000和WCDMA慢。&nbsp;<br /><br />以下是一篇比较中肯的网络文章介绍。&nbsp;<br /><br />－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br /><br />聊聊TD上网（转）<wbr>&nbsp;<br />我是TD设备厂家的一名员工，看到这里这么多TD用户，感觉甚是欣慰，因此半夜注册了一个帐号来跟大家聊几句，希望大家看到之后能对TD更加了解，多用TD，用好TD。&nbsp;<br /><br /><B><wbr>1、先简单介绍一下TD。</B><wbr>&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;TD有普通的TD和TD-HSDPA之分，普通的TD就类似于GSM和GPRS。能提供话音业务、视频电话业务和最高下行速率为384kbps的数据业务，TD-HSDPA是一种数据业务增强技术，类似于EDGE，目前最高能提供2.8Mbps的下行速率和128kbps的上行速率。此外，根据移动的发展规划，今年下半年或者明年左右，将会提供TD-HSUPA服务，HSUPA相比HSDPA，主要是提高了上行的传输速率，届时上行速率最高也可以达到1.6Mbps。&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;目前只有TD上网卡支持HSDPA，而尚未有支持HSDPA的手机终端推出，听说中兴有一款叫U990的手机是支持HSDPA的，已经通过入网检测了，但是应该还未正式上市。&nbsp;<br /><br /><B><wbr>2、讲讲TD上网卡终端。&nbsp;<br /></B><wbr><br />&nbsp;&nbsp;&nbsp;&nbsp;08年推出的TD上网卡，主要以R4上网卡和支持1.1M的HSDPA上网卡为主，比如中兴MU318、大唐5722等。唯一一款支持2.8M&nbsp;HSDPA的大唐5731还是&quot;TD&nbsp;only”的，不支持GPRS/EDGE网络。到了09年，2.8M且支持EDGE的上网卡就比较多了，比如大唐5731E，中兴MU350，大唐电信Aircard901等。&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;这几款主流的上网卡其实都是使用联芯科技（大唐移动与联发科一起搞起来的一家TD芯片公司，目前国内TD芯片的龙头）的芯片，TD部分是大唐的技术，EDGE部分是联发科的技术。说到这，大家该知道为何大唐会先出一款&quot;TD&nbsp;only”的上网卡了吧，因为联发科进来的晚，大唐自己又没有GSM的技术。另外，大家应该也能理解为什么TD上网卡用EDGE上网的时候速度不如诺基亚、多普达的EDGE手机快了吧，因为本来联发科的EDGE技术就达不到诺基亚他们的层次，不信您拿个山寨机上EDGE网试试看能有多快？呵呵。毕竟，EDGE、GSM的核心技术都在人家手里啊。因此，建议大家就别拿TD上网卡来跟EDGE手机来比EDGE上网速度了，呵呵。&nbsp;<br /><B><wbr><br />3、再说说网络。</B><wbr>&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;很多人疑惑，我用2.8M的卡上网，速度并没有这么快啊？&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;其实2008年下半年，北京、上海、广州、深圳等10个TD一期城市就已经陆续开通了HSDPA服务，但是当时移动给TD网络的定位，还是语音业务和数据业务并重的。因此每个基站的小区只开通了1个载波，配置了2个时隙的HSDPA信道，用户最高只能得到1.1Mbps的下行速率，换算成Byte，也就135kB这样子吧，在信号不是非常好的地方，用户一般只能得到50～100kB左右的平均下载速率。&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;到了今年2月，随着电信189的竞争压力，3G已经很明显的往移动互联网的方向倾斜，TD网络开始侧重于发展数据业务用户，特别是TD-HSDPA上网卡用户。因此2月份以来一期各城市已经陆续进行网络调整，减少话音业务信道，增开HSDPA信道。目前普遍的配置是每个小区配置2个HSDPA载波，每个载波配置3个时隙的HSDPA业务信道，如此一来，用户最高能够得到1.6Mbps的下行速率，换算成Byte就是200kB，一般使用中都能得到100～150kB左右的下载速率，这已经是大部分1M&nbsp;ADSL的速率水平了。同时HSDPA载波数的增加，意味着抢带宽的现象会一定程度的减少，用户在网络繁忙的时候也能得到较高的速率。&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;同时，TD二期城市的网络建设也在以超常规的速度进行，现在各个省会城市，甚至一些三期的非省会地级市，都已经有TD信号覆盖了，而09年5月17日电信日，将会是绝大部分省会城市TD正式放号的日子，所以说现在各地都能搜到TD信号，其实并不奇怪。&nbsp;<br /><br /><B><wbr>4、说说竞争对手。</B><wbr>&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;毫无疑问，移动这次的竞争形势是前所未有的恶劣。一方面电信189已经放号，各大城市都已经在建设CDMA2000&nbsp;EVDO网络，EVDO的终端虽然数量种类也不多，但成熟度还是很高的，毕竟韩国美国用了这么久了。EVDO标称的上下行速率均高出TD，但目前并不清楚实际开放给用户的速率能达到多少（估计会比TD的1.6Mbps高，知道的朋友可以介绍一下）。另一方面联通拿了最好的WCDMA牌照，同样在紧锣密鼓地进行WCDMA以及HSDPA的建设。WCDMA终端数量多，技术成熟，对用户来说吸引力非常之大。速率指标方面，估计开放给用户的速率也会比TD高，但预计不会高出很多，甚至应该会比电信的EVDO要稍微低一些，可能是2Mbps左右。相信很多人通过新闻都知道WCDMA的HSPA+技术，下行速率能达到十几M甚至几十M，不错，但遗憾的是HSPA+的终端并未普及，甚至水货都买不到。&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;大家会不会就觉得TD是最慢的呢？其实未必。因为CDMA2000和WCDMA都是同频自干扰系统，用户之间自干扰现象很明显，特别是用户进行HSDPA业务时，终端都是以最大功率发射的，这样造成的干扰也最大，致使各个用户实际能得到的速率要比理论速率低很多。另外这两个系统中的话音用户也会对HSDPA用户形成干扰，这个量可是相当大的，而TD系统中话音用户对HSDPA用户干扰基本没有，用户能够有较多的机会得到接近理论值的HSDPA速率。如此一来，在用户形成一定规模的时候，TD的上网速率将未必比CDMA2000和WCDMA慢，不信的话，明年这个时候大家再来这里看看就知道了。&nbsp;<br /><B><wbr><br />5、说说价格。</B><wbr>&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;目前TD测试阶段还是按流量计费，这让很多人觉得不可接受，其实现在移动也是在摸索数据业务的收费方式，各个地方都成立了专门的部门安排了专门的人手在统计分析TD用户的使用习惯，比如平均每个用户每个月会打多少分钟的话音电话、视频电话，会进行多少次数据业务、产生多少流量，进行数据业务是时看时停的多还是拼命下载的多……等等。这些统计分析工作做完之后，相信移动会有针对性的出台新的计费方式，是按时间、还是按流量、还是以包月为主，其实都有可能。据了解现在移动已经基本确定以后TD上网不再区分CMWAP和CMNET了，这其实就是一个改变的开始，以后肯定还会好起来的，不是么？我建议测试阶段大家可以在免费范围内尽量多用TD下载，多产生一些流量，假如每人每月用个好几G，以后移动还好意思再按流量收费？谅它也不敢，呵呵。&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;最后给大家说一句，TD目前仍在测试阶段，网络肯定不是十分稳定，终端也不是那么尽善尽美，还请各位多多体谅了，多谢多谢！&nbsp;<br /><br />*****************************************&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;今天翻查了一下资料，以联通拿到30M的频谱资源来看，预计在大部分区域将会开通2载波配置，然后单独分配1个载波给HSDPA用户，此时一个小区内的总吞吐能力为3.6Mbps，以此推算联通WCDMA首期会宣称支持3.6Mbps的理论速率。在用户上了规模之后，出于容量的考虑通常只在基站侧开通1.8Mbps给单个用户，这样一个载波才能支持2个用户同时进行HSDPA业务。1.8Mbps折算成Byte应该是225kB，在规模用户的干扰条件下，用户一般能得到150kB左右的平均下载速率。&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;电信的EVDO跟WCDMA差不多，论坛里不是另外有个帖子贴出来能达到3.1Mbps么，这应该就是在单小区单用户的条件下测试得到的速率，3.1/3.6=85%，不知道测试者当时的信号环境如何，理论值的85%应该也是挺不错的一个成绩了。&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;现在市面上也出现了很多宣称支持7.2Mbps甚至10Mbps的WCDMA-HSDPA上网卡，这是在同时占用2个或者3个载波的条件下实现的，占用2个载波就是20M频谱，占掉3个载波就是30M频谱了，联通总共就30M频谱，不知道它愿不愿意全部配给你？呵呵。</div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/4299443920092179947840</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/4299443920092179947840</guid>
    <pubDate>Tue, 17 Mar 2009 21:09:47 +0800</pubDate>
    <dcterms:modified>2009-03-17T21:09:47+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[80 年代以来的操作系统 GUI 设计进化史（下）]]></title>	
    <link>http://soulmjs.blog.163.com/blog/static/42994439200921522354840</link>
    <description><![CDATA[<div>新闻来源:webdesignerdepot.com<br />70年代，施乐公司&nbsp;<a href="http://en.wikipedia.org/wiki/Xerox_PARC" target="_blank">Xerox&nbsp;Palo&nbsp;Alto&nbsp;Research&nbsp;Center&nbsp;(PARC)</a><wbr>&nbsp;的研究人员开发了第一个&nbsp;GUI&nbsp;图形用户界面，开启了计算机图形界面的新纪元，80年代以来，操作系统的界面设计经历了众多变迁，OS/2,&nbsp;Macintosh,&nbsp;Windows,&nbsp;Linux,&nbsp;Symbian&nbsp;OS&nbsp;，各种操作系统将&nbsp;GUI&nbsp;设计带进新的时代。本文介绍了80年代以来各种操作系统&nbsp;GUI&nbsp;界面设计的进化史。这是本文的第二部分，第一部分参阅80&nbsp;年代以来的操作系统&nbsp;GUI&nbsp;设计进化史（上）Windows&nbsp;3.1&nbsp;(1992)&nbsp;<br />该版本的&nbsp;Windows&nbsp;支持预装的&nbsp;TrueType&nbsp;字体，第一次使&nbsp;Windows&nbsp;成为可以用于印刷的系统。Windows&nbsp;3.0&nbsp;中，只能通过&nbsp;Adobe&nbsp;字体管理器（ATM）实现该功能。该版本同时包含一个叫做&nbsp;Hotdog&nbsp;Stand&nbsp;的配色主题。<br /><br />配色主题可以帮助某些色盲患者更容易看清图形。<br /><br /><a href="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/windows_311_workspace.png" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/windows_311_workspace.png" border='0' width='640' height='480'><wbr></a><wbr><br /><I><wbr>Source:&nbsp;<a href="http://en.wikipedia.org/wiki/Windows_3.1x" target="_blank">Wikipedia</a><wbr></I><wbr><br /><br /><I><wbr><br /></I><wbr><br />OS/2&nbsp;2.0&nbsp;(1992)&nbsp;<br />这是第一个获得世界认可并通过可用性与可访问性测试的&nbsp;GUI，整个&nbsp;GUI&nbsp;基于面向对象模式，每个文件和文件夹都是一个对象，可以同别的文件，文件夹与应用程序关联。它同时支持拖放式操作以及模板功能。<br /><br /><a href="http://toastytech.com/guis/os220.html" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/os-2-2.gif" border='0' width='615' height='461'><wbr></a><wbr><br /><I><wbr>IBM&nbsp;OS/2&nbsp;2.0,&nbsp;Source:&nbsp;<a href="http://toastytech.com/guis/os220.html" target="_blank">toastytech.com</a><wbr></I><wbr><br /><br /><I><wbr><br /></I><wbr><br /><br /><a href="http://toastytech.com/guis/os220.html" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/os-2-21.gif" border='0' width='615' height='461'><wbr></a><wbr><br /><I><wbr>IBM&nbsp;OS/2&nbsp;2.0,&nbsp;Source:&nbsp;<a href="http://toastytech.com/guis/os220.html" target="_blank">toastytech.com</a><wbr></I><wbr><br /><br /><I><wbr><br /></I><wbr><br />Windows&nbsp;95&nbsp;(1995)&nbsp;<br />Windows&nbsp;3.x&nbsp;之后，微软对整个用户界面进行了重新设计，这是第一个在窗口上加上关闭按钮的&nbsp;Windows&nbsp;版本。图标被赋予了各种状态（有效，无效，被选中等），那个著名的“开始”按钮也是第一次出现。对操作系统和&nbsp;GUI&nbsp;而言，这是微软的一次巨大飞跃。<br /><br /><a href="http://www.guidebookgallery.org/screenshots/win95" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/windows-951.gif" border='0' width='615' height='461'><wbr></a><wbr><br /><I><wbr>Microsoft&nbsp;Windows&nbsp;95,&nbsp;Source:&nbsp;<a href="http://www.guidebookgallery.org/screenshots/win95" target="_blank">guidebookgallery.org</a><wbr></I><wbr><br /><br /><I><wbr><br /></I><wbr><br /><br /><a href="http://www.guidebookgallery.org/screenshots/win95" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/windows-95.gif" border='0' width='615' height='461'><wbr></a><wbr><br /><I><wbr>Microsoft&nbsp;Windows&nbsp;95,&nbsp;Source:&nbsp;<a href="http://www.guidebookgallery.org/screenshots/win95" target="_blank">guidebookgallery.org</a><wbr></I><wbr><br /><br /><I><wbr><br /></I><wbr><br />1996&nbsp;-&nbsp;2000&nbsp;OS/2&nbsp;Warp&nbsp;4&nbsp;(1996)&nbsp;<br />IBM&nbsp;终于争气地推出了&nbsp;OS/2&nbsp;Warp&nbsp;4。桌面上可以放置图标，也可以自己创建文件和文件夹，并推出一个类似&nbsp;Windows&nbsp;回收站和&nbsp;Mac&nbsp;垃圾箱的文件销毁器，不过一旦放进去进不能再恢复。<br /><br /><a href="http://toastytech.com/guis/os24.html" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/os-2-warp-4.jpg" border='0' width='615' height='461'><wbr></a><wbr><br /><I><wbr>IBM&nbsp;OS/2&nbsp;Warp&nbsp;4,&nbsp;Source:&nbsp;<a href="http://toastytech.com/guis/os24.html" target="_blank">toastytech.com</a><wbr></I><wbr><br /><br /><I><wbr><br /></I><wbr><br /><br /><a href="http://toastytech.com/guis/os24.html" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/os-2-warp-41.jpg" border='0' width='615' height='461'><wbr></a><wbr><br /><I><wbr>IBM&nbsp;OS/2&nbsp;Warp&nbsp;4,&nbsp;Source:&nbsp;<a href="http://toastytech.com/guis/os24.html" target="_blank">toastytech.com</a><wbr></I><wbr><br /><br /><I><wbr><br /></I><wbr><br />Mac&nbsp;OS&nbsp;System&nbsp;8&nbsp;(1997)&nbsp;<br />该版本的&nbsp;GUI&nbsp;支持默认的256色图标，Mac&nbsp;OS&nbsp;8&nbsp;最早采用了伪3D图标，其灰蓝色彩主题后来成为&nbsp;Mac&nbsp;OS&nbsp;GUI&nbsp;的标志。<br /><br /><a href="http://www.guidebookgallery.org/screenshots/macos80" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/macos-8.jpg" border='0' width='615' height='461'><wbr></a><wbr><br /><I><wbr>Apple&nbsp;Mac&nbsp;OS&nbsp;8,&nbsp;Source:&nbsp;<a href="http://www.guidebookgallery.org/screenshots/macos80" target="_blank">guidebookgallery.org</a><wbr></I><wbr><br /><br /><I><wbr><br /></I><wbr><br />Windows&nbsp;98&nbsp;(1998)&nbsp;<br />图标风格和&nbsp;Windows&nbsp;95&nbsp;几无二致，不过整个&nbsp;GUI&nbsp;可以使用超过256色进行渲染，Windows&nbsp;资源管理器改变巨大，第一次出现活动桌面。<br /><br /><a href="http://toastytech.com/guis/win98.html" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/windows-98.jpg" border='0' width='615' height='461'><wbr></a><wbr><br /><I><wbr>Microsoft&nbsp;Windows&nbsp;98,&nbsp;Source:&nbsp;<a href="http://toastytech.com/guis/win98.html" target="_blank">toastytech.com</a><wbr></I><wbr><br /><br /><I><wbr><br /></I><wbr><br />KDE&nbsp;1.0&nbsp;(1998)&nbsp;<br />KDE是&nbsp;Linux&nbsp;的一个统一图形用户界面环境。<br /><br /><a href="http://ditesh.gathani.org/blog/2008/04/25/culture-matters/" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/kde-1.jpg" border='0' width='615' height='461'><wbr></a><wbr><br /><I><wbr>KDE&nbsp;1.0,&nbsp;Source:&nbsp;<a href="http://ditesh.gathani.org/blog/2008/04/25/culture-matters/" target="_blank">ditesh.gathani.org</a><wbr></I><wbr><br /><br /><I><wbr><br /></I><wbr><br />GNOME&nbsp;1.0&nbsp;(1999)&nbsp;<br />GNOME&nbsp;桌面主要为&nbsp;Red&nbsp;Hat&nbsp;Linux&nbsp;开发，后来也被别的&nbsp;Linux&nbsp;采用。<br /><br /><a href="http://www.visionfutur.com/img/histoire/gnome1-1.jpg" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/gnome-1.gif" border='0' width='615' height='461'><wbr></a><wbr><br /><I><wbr>Red&nbsp;Hat&nbsp;Linux&nbsp;GNOME&nbsp;1.0.39,&nbsp;Source:&nbsp;<a href="http://www.visionfutur.com/img/histoire/gnome1-1.jpg" target="_blank">visionfutur.com</a><wbr></I><wbr><br /><br /><I><wbr><br /></I><wbr><br />2001&nbsp;-&nbsp;2005&nbsp;Mac&nbsp;OS&nbsp;X&nbsp;(released&nbsp;in&nbsp;2001)&nbsp;<br />2000年初，苹果宣布推出其&nbsp;Aqua&nbsp;界面，2001年，推出全新的操作系统&nbsp;Mac&nbsp;OS&nbsp;X。默认的&nbsp;32x32,&nbsp;48x48&nbsp;被更大的&nbsp;128x128&nbsp;平滑半透明图标代替。<br /><br />该&nbsp;GUI&nbsp;一经推出立即招致大量批评，似乎用户都如此大的变化还不习惯，不过没过多久，他们呢就接受了这种新风格，如今这种风格已经成了&nbsp;Mac&nbsp;OS&nbsp;的招牌。<br /><br /><a href="http://www.guidebookgallery.org/screenshots/macosx101" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/mac-osx-1.jpg" border='0' width='615' height='461'><wbr></a><wbr><br /><I><wbr>Apple&nbsp;Mac&nbsp;OS&nbsp;X&nbsp;10.1&nbsp;Source:&nbsp;<a href="http://www.guidebookgallery.org/screenshots/macosx101" target="_blank">guidebookgallery.org</a><wbr></I><wbr><br /><br /><I><wbr><br /></I><wbr><br />Windows&nbsp;XP&nbsp;(released&nbsp;in&nbsp;2001)&nbsp;<br />每一次微软推出重要的操作系统版本，其&nbsp;GUI&nbsp;也必定有巨大的改变，Windows&nbsp;XP&nbsp;也不例外，这个&nbsp;GUI&nbsp;支持皮肤，用户可以改变整个&nbsp;GUI&nbsp;的外观与风格，默认图标为&nbsp;48x48，支持上百万颜色。<br /><br /><a href="http://www.guidebookgallery.org/screenshots/winxppro" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/windows-xp.jpg" border='0' width='615' height='461'><wbr></a><wbr><br /><I><wbr>Microsoft&nbsp;Windows&nbsp;XP&nbsp;Professional,&nbsp;Source:&nbsp;<a href="http://www.guidebookgallery.org/screenshots/winxppro" target="_blank">guidebookgallery.org</a><wbr></I><wbr><br /><br />KDE&nbsp;3&nbsp;(released&nbsp;in&nbsp;2002)&nbsp;<br />自1.0版发布以来，KDE&nbsp;有了长足的改进，对所有图形和图标进行了改进并统一了用户体验。<br /><br /><a href="http://www.netbsd.org/gallery/in-Action/jschauma-kde3.png" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/kde-3.jpg" border='0' width='615' height='461'><wbr></a><wbr><br /><I><wbr>KDE&nbsp;3.0.1,&nbsp;Source:&nbsp;<a href="http://www.netbsd.org/gallery/in-Action/jschauma-kde3.png" target="_blank">netbsd.org</a><wbr></I><wbr><br /><br /><I><wbr><br /></I><wbr><br />2007&nbsp;-&nbsp;2009&nbsp;(current)<br />Windows&nbsp;Vista&nbsp;(released&nbsp;in&nbsp;2007)&nbsp;<br />这是微软向其竞争对手做出的一个挑战，Vista&nbsp;中同样包含很多&nbsp;3D&nbsp;和动画，自&nbsp;Windows&nbsp;98&nbsp;以来，微软一直尝试改进桌面，在&nbsp;Vista&nbsp;中，他们使用类似饰件的机制替换了活动桌面。<br /><br /><a href="http://technology.berkeley.edu/msvista/images/800px-Windows_Vista_Desktop.png" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/windows-vista.jpg" border='0' width='615' height='461'><wbr></a><wbr><br /><I><wbr>Microsoft&nbsp;Windows&nbsp;Vista,&nbsp;Source:&nbsp;<a href="http://technology.berkeley.edu/msvista/images/800px-Windows_Vista_Desktop.png" target="_blank">technology.berkeley.edu</a><wbr></I><wbr><br /><br /><br /><br /><br /><br /><br /><br />Mac&nbsp;OS&nbsp;X&nbsp;Leopard&nbsp;(released&nbsp;in&nbsp;2007)&nbsp;<br />对于第六代&nbsp;Max&nbsp;OS&nbsp;X，苹果又一次对用户界面做出改进。基本的&nbsp;GUI&nbsp;仍是&nbsp;Aqua，但看上去更&nbsp;3D&nbsp;一些，也包含了&nbsp;3D&nbsp;停靠坞以及很多动画与交互功能。<br /><br /><a href="http://skattertech.com/media/2007/10/apple-os-x-leopard-screenshot.jpg" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/mac-osx-leopard.jpg" border='0' width='615' height='388'><wbr></a><wbr><br /><I><wbr>Apple&nbsp;Mac&nbsp;OS&nbsp;X&nbsp;10.5&nbsp;Leopard,&nbsp;Source:&nbsp;<a href="http://skattertech.com/media/2007/10/apple-os-x-leopard-screenshot.jpg" target="_blank">skattertech.com</a><wbr></I><wbr><br /><br /><br /><br />KDE&nbsp;(v4.0&nbsp;Jan.&nbsp;2009,&nbsp;v4.2&nbsp;Mar.&nbsp;2009)&nbsp;<br />KDE&nbsp;4&nbsp;的&nbsp;GUI&nbsp;提供了很多新改观，如动画的，平滑的，有效的窗体管理，图标尺寸可以很容易调整，几乎任何设计元素都可以轻松配置。相对前面的版本绝对是一个巨大的改进。<br /><br /><a href="http://en.wikipedia.org/wiki/File:KDE_4.2_desktop.png" target="_blank"><wbr><img src="http://www.webdesignerdepot.com/wp-content/uploads/2009/03/kde.jpg" border='0' width='615' height='384'><wbr></a><wbr><I><wbr><br />Source:&nbsp;<a href="http://en.wikipedia.org/wiki/File:KDE_4.2_desktop.png" target="_blank">Wikipedia</a><wbr></I><wbr><br /><br />鸣谢&nbsp;<ul style='list-style-type:disc'><li style='margin:25px;'><a href="http://www.guidebookgallery.org/" target="_blank">http://www.guidebookgallery.org/</a><wbr>&nbsp;</li><li style='margin:25px;'><br /><a href="http://toastytech.com/guis/index.html" target="_blank">http://toastytech.com/guis/index.html</a><wbr>&nbsp;</li></ul>&nbsp;&nbsp;延伸阅读&nbsp;<br /><a href="http://www.comsharp.com/GetKnowledge/zh-CN/It_News_K708.aspx" target="_blank">苹果的设计演化史：1977-2008</a><wbr><br /><br />本文国际来源：<a href="http://www.webdesignerdepot.com/2009/03/operating-system-interface-design-between-1981-2009/" target="_blank">http://www.webdesignerdepot.com/2009/03/operating-system-interface-design-between-1981-2009/</a><wbr><br />中文翻译来源：<a href="http://www.comsharp.com/" target="_blank">COMSHARP&nbsp;CMS</a><wbr>&nbsp;官方网站<br /></div>]]></description>
	    <author><![CDATA[╃晴天PIGPIG]]></author>
	    <comments>http://soulmjs.blog.163.com/blog/static/42994439200921522354840</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://soulmjs.blog.163.com/blog/static/42994439200921522354840</guid>
    <pubDate>Sun, 15 Mar 2009 02:23:54 +0800</pubDate>
    <dcterms:modified>2009-03-15T02:23:54+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[上传相片20张 ]]></title>	
    <link>http://blog.163.com/soulmjs/album</link>
    <description><![CDATA[<div>
				<a href="http://img.bimg.126.net/photo/PgRAECFIGjCdQ3aeS9asCA==/296674625454136611.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/PgRAECFIGjCdQ3aeS9asCA==/296674625454136611.jpg" border="0" width="179" height="240" alt="200812241449_492 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/IGiez9zrWoITuZq_bJLJfg==/578994027094978755.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/IGiez9zrWoITuZq_bJLJfg==/578994027094978755.jpg" border="0" width="240" height="180" alt="200812241613_581 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/HEZQFuH9VXDF32H4f-BdEA==/578994027094978744.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/HEZQFuH9VXDF32H4f-BdEA==/578994027094978744.jpg" border="0" width="240" height="180" alt="200812241612_580 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/R9Pb2AWyqD5DdoxcRKp4Cg==/4584945895640554278.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/R9Pb2AWyqD5DdoxcRKp4Cg==/4584945895640554278.jpg" border="0" width="240" height="180" alt="200812241610_579 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/2s8ks_NzGiGMAAHnWNlvQA==/4584945895640554267.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/2s8ks_NzGiGMAAHnWNlvQA==/4584945895640554267.jpg" border="0" width="240" height="180" alt="200812241610_578 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/ShNjot2RgJPt4A-LwI64zw==/4584945895640554250.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/ShNjot2RgJPt4A-LwI64zw==/4584945895640554250.jpg" border="0" width="240" height="180" alt="200812241609_577 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/0cHUD0jRD-p7qm4U73OE-Q==/4584945895640554246.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/0cHUD0jRD-p7qm4U73OE-Q==/4584945895640554246.jpg" border="0" width="240" height="180" alt="200812241608_576 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/mFEiMgKe54u-6_Dfx_903g==/4584945895640554241.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/mFEiMgKe54u-6_Dfx_903g==/4584945895640554241.jpg" border="0" width="240" height="180" alt="200812241607_575 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/4aD7LZlsAcElagiDm0JGkA==/4516828951276998673.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/4aD7LZlsAcElagiDm0JGkA==/4516828951276998673.jpg" border="0" width="240" height="180" alt="200812241606_574 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/gNbNeIFd3t6W-mHu9e2E5Q==/4516828951276998640.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/gNbNeIFd3t6W-mHu9e2E5Q==/4516828951276998640.jpg" border="0" width="240" height="180" alt="200812241606_573 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/Xzb5S1uQKMUeAywxi8VueQ==/4516828951276998632.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/Xzb5S1uQKMUeAywxi8VueQ==/4516828951276998632.jpg" border="0" width="240" height="180" alt="200812241605_572 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/liOiE6dsyRLNgtlDdPJ7KQ==/612771024300223900.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/liOiE6dsyRLNgtlDdPJ7KQ==/612771024300223900.jpg" border="0" width="240" height="180" alt="200812241605_571 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/kyWf9I22PojGSSRRBH-uDA==/612771024300223887.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/kyWf9I22PojGSSRRBH-uDA==/612771024300223887.jpg" border="0" width="240" height="180" alt="200812241604_570 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/w9c5wkw5Vlm8qlSnclYZHw==/4584101470710422307.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/w9c5wkw5Vlm8qlSnclYZHw==/4584101470710422307.jpg" border="0" width="240" height="180" alt="200812241603_569 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/KdYk96Yx2wXS88MtqD6EKA==/4584101470710422285.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/KdYk96Yx2wXS88MtqD6EKA==/4584101470710422285.jpg" border="0" width="240" height="180" alt="200812241603_568 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/seMjVwCqqhTRvHxaGMnOSw==/4584101470710422268.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/seMjVwCqqhTRvHxaGMnOSw==/4584101470710422268.jpg" border="0" width="240" height="180" alt="200812241603_567 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/PlsU7a60mH26pD5UVe-_qA==/912823349473642841.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/PlsU7a60mH26pD5UVe-_qA==/912823349473642841.jpg" border="0" width="240" height="180" alt="200812241602_566 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/hybTOOGzQ380T11JffM3vA==/912823349473642821.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/hybTOOGzQ380T11JffM3vA==/912823349473642821.jpg" border="0" width="240" height="180" alt="200812241602_565 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/mptTvkXqvKoT5QmZJOMdmg==/4233665124706050885.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/mptTvkXqvKoT5QmZJOMdmg==/4233665124706050885.jpg" border="0" width="240" height="180" alt="200812241601_564 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
			<a href="http://img.bimg.126.net/photo/Vq0lzkW1XQrKs36gbhSlkw==/4233665124706050872.jpg" target="_blank">
			<img src="http://img.bimg.126.net/photo/Vq0lzkW1XQrKs36gbhSlkw==/4233665124706050872.jpg" border="0" width="240" height="180" alt="200812241601_563 电脑...硬件...手机...游戏...数码产品...我都有研究下...  电影...电视剧...音乐...我都中意... 有共同爱好既...可以顷下.. 思念就好似0向量甘.无定向,妳系边度.我思念既方向就系边度..."/>
			</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[soulmjs]]></author>
    <guid isPermaLink="false">http://img.bimg.126.net/photo/Vq0lzkW1XQrKs36gbhSlkw==/4233665124706050872.jpg</guid>
    <pubDate>Thu, 25 Dec 2008 13:50:14 +0800</pubDate>
    <dcterms:modified>2008-12-25T13:54:59+08:00</dcterms:modified>
  </item>    
 </channel>
</rss>