摄影是一门技术,同样也是经验的积累。下面是无数摄影师的经验汇聚而成的12条最经典、实用的摄影技巧,将其熟记于心,将帮助你应对很多难以掌控的拍摄场景。推荐收藏。

1.Sunny 16 Rule (阳光十六法则) “Sunny 16 Rule”是在没有测光表时,正确估算日光下曝光数值的方法,所以这条法则只有在阳光充足的情况下适合使用。将光圈设为F/16,快门与ISO同步,或者略快。如,ISO设为100时,快门应该设为1/100秒(1/125秒)。所以,根据这个法则,在海滩上摄影时,应该使用F/22光圈,在多云时应使用F/11光圈。

2.Moony 11,8, and 5.6 Rules  (月光11,8和5.6法则) 如果你想拍摄月亮,那么这里有一条很好的法则。快门与ISO同步的时候,拍摄满月用F/11光圈,弦月的时候用F/8光圈,新月则使用F/5.6光圈。

3.Camera Shake Rule  (相机抖动法则) 当你手持相机拍摄时,快门的速度不能小于镜头焦距的倒数。如果快门速度越慢,那么拍摄抖动时就越可能降低锐度。如果用50mm焦距的话,快门就要达到1/60秒以上为宜,只有当环境实在昏暗时,用闪光灯、脚架或者把相机放在硬物上防止抖动。

4.Anatomical Gray Card  (灰板法则) 随身携带18%的中灰度板是拍摄的利器。可是如果身上没有灰度板怎么办呢?可以将手掌摊开面向阳光,对手掌进行测光,然后加一档曝光。

5.Depth of Field Rules  (景深法则) 当被摄无题比较深的时候,应该对焦点选择在景深的前1/3处,因为这样,对焦点后的景深是之前的2倍。各种光圈和焦段组合都可以使用这个法则。记住,光圈越小,焦距越短,距离被摄物体越远,景深就越大。

6.Largest Digital Print Rule  (数码冲印尺寸法则) 如果你想把你的作品打印成大尺寸的照片时,照片的尺寸不能大于数码图片的长宽像素各除以200.如果你对作品要求很高,那么至少得除以250。

7.Exposure Rules (曝光法则) 在处理数码照片时,最普遍的法则是保证高光区曝光准确,低光区随他去。可是当处理负片,特别是彩色负片的时候,你最好增曝一档。

8.Quick Flash-fill Rule  (快速闪光输出法则) 当你的相机不能自动输出控制的闪光灯时,将闪光灯的感光度设为胶卷的二被。如果对主体测光,机身选择光圈整档,闪光灯设为同样的光圈。这样,照片的阴影区会比主体的亮度低一档。

9.Flash Range Rule (闪光距离法则) 这个法则很简单:距离乘以2,感光度乘以4。例如,你的闪光灯在ISO 100时,有效距离为20英尺。如果你想使闪光灯的距离达到40英尺时,则需要ISO 400。

10.Megapixel Multiplier Rule (像素翻倍法则) 如果你想使数码相机的分辨率增倍,那么很简单,就是要像素翻两番。

11.Action-stopping Rule (捕捉动态法则) 这条法则是根据角度与速度的经验公式而来的。如果物体沿着镜头的轴线运动你能够用1/125的快门捕捉下,那么它追至于镜头轴线的运动能用1/500捕捉下来。也就是说,如果物体沿镜头轴线称45度运动,只需要1/250的快门速度。

12.Sunset Rule  (日落法则) 拍摄落日时,要对落日上部测光,但是不能让太阳出现在你的取景器中。如果想让日落看上去比实际晚一小时,可以在曝光补偿中减1。

 

hosts,你懂的…

74.125.230.107 plus.google.com
209.85.175.132 images1-focus-opensocial.googleusercontent.com
209.85.175.132 images2-focus-opensocia2.googleusercontent.com
209.85.175.132 s2.googleusercontent.com
209.85.143.132 lh1.googleusercontent.com
209.85.175.132 lh1.googleusercontent.com
209.85.143.132 lh2.googleusercontent.com
209.85.175.132 lh2.googleusercontent.com
209.85.143.132 lh3.googleusercontent.com

209.85.175.132 lh3.googleusercontent.com
209.85.175.132 lh4.googleusercontent.com
209.85.143.132 lh4.googleusercontent.com
209.85.143.132 lh5.googleusercontent.com
209.85.175.132 lh5.googleusercontent.com
209.85.143.132 lh6.googleusercontent.com
209.85.175.132 lh6.googleusercontent.com

对于网页开发者来说,学会jQuery是必要的。因为它让你了解业界最通用的技术,为将来学习更高级的库打下基础,并且确实可以很轻松地做出许多复杂的效果。

虽然jQuery上手简单,比其他库容易学会,但是要全面掌握,却不轻松。因为它涉及到网页开发的方方面面,提供的各种方法和内部变化有上千种之多。初学者常常感到,入门很方便,提高很困难。

目前,互联网上最好的jQuery入门教材,是Rebecca Murphey写的《jQuery基础》(jQuery Fundamentals)。在Google里搜索”jQuery 培训”,此书排在第一位。jQuery官方团队已经同意,把此书作为官方教程的基础。

这本书虽然是入门教材,但也足足有100多页。我对它做了一个详细的笔记,试图理清jQuery的设计思想,找出学习的脉络。我的目标是全面掌握jQuery,遇到问题的时候,心里有底,基本知道使用它的哪一个功能,然后可以迅速从手册中找到具体的写法。

下面就是我的笔记,它应该是目前网上不多的jQuery中文教程之一。你只需要一点javascript语言的基本知识,就能看懂它,在最短的时间里,掌握jQuery的所有主要方面(除了ajax和插件开发)。

继续阅读

这篇教程是在u盘安装Mac OS X 10.7 Lion Developer Preview 4最简单的方法,无需复杂的替换,无需复杂的恢复,就可以轻松搞定Mac OS X 10.7 Lion Developer Preview 4,我已经在本本和台式机上轻松安装了Mac OS X 10.7 Lion Developer Preview 4,驱动几乎完美。

好了,不啰嗦了,进入正题。

1、准备一个8G的u盘。usb键盘

2、下载好Mac OS X 10.7 Lion Developer Preview 4镜像。下载最新的MultiBeast

3、下载XFlash。点击这里下载http://dl.dbank.com/c0x3v1v019

4、插入u盘,打开磁盘工具,选定u盘,点分区,分区布局选一个分区,各式选Mac OS 扩展(日志式),随便选个名字,点应用。完成后,关闭磁盘工具。

5、在桌面点的u盘,右键显示简介,点开最下面的共享与权限,双击右下角的黄锁,打开修改权限,去掉左边的勾。

6、打开Mac OS X 10.7 Lion Developer Preview 4镜像,放到一边。

7、解压附件,进入XFlash文件夹,将桌面的u盘拖到XFlash的图标上,输入密码,就开始将Lion DP4镜像写入u盘,同时会将能在mbr下使用的文件一并替换写入,无需任何人为操作。十分简便。

8、根据u盘写入速度不同,大约20~30分钟。就完成。

9、打开u盘,将XFlash文件夹内的驱动放入u盘中的E/E中。有DSDT的也可以放进去。

10、好了u盘启动Lion DP4安装盘就到此制作完毕。

11、将u盘插入要按照Lion DP4的机器,从u盘启动。下面就是正常安装过程。

12、安装结束后,如果是双系统,会破坏windows的启动,用windows光盘修复。

13、如何进入已经安装好的Lion DP4?有2个办法,

       a、双系统的,进windows系统,安装最新的变色龙,以变色龙引导。

       b、单系统的,以iboot光盘引导。

14、进入系统后,运行MultiBeast,一般都知道这个东西,我就不详细介绍了。里面的2.0.6网卡驱动可以驱动大部分Realtek的网卡。

15、n卡基本是自动驱动的,a卡的情况不详(我没有a卡),大家可以测试下。

16、此方法只适合intel 的CPU

Ubuntu在升级了几次内核以后,就会在引导菜单里面多出很多引导项。看着很不爽~

今天研究了下,发现可以通过下面这个命令删除Ubuntu系统中过期的内核,精简菜单项:

 

XML/HTML代码
  1. sudo aptitude purge ~ilinux-image-.*(!`uname -r`)  

 

一行命令就解决问题,不错!

同时在网上还看到另外一个复杂一点的办法:

第一步:列出所有当前已经安装了的内核文件:
 
$dpkg –get-selections|grep linux-image
linux-image-2.6.31-14-generic            install
linux-image-2.6.31-15-generic            install
linux-image-2.6.31-16-generic            install
linux-image-2.6.31-17-generic            install
linux-image-2.6.31-20-generic            install
linux-image-2.6.31-21-generic            install

第二步:删除旧的内核,用以下命令:
 
$sudo apt-get remove [内核文件名]
 
同时删除多个可以在内核文件名之间加空格。比如我要删除14,15我就输入以下命令:
 
$sudo apt-get remove linux-image-2.6.31-14-generic linux-image-2.6.31-15-generic

大家看到标题后的第一个问题可能是:“我们需要这样做吗?”

如果我们开发的是局域网 Web 应用的话,可能没有必要这样做。但如果我们的 Web 应用面向的是互联网上的成千上万的用户,这样做就很必要了。因为在现实世界中并不是所有的用户都有高数率的网络连接,也许用户使用的是拨号接入,移动设备,3G,或者是 USB 网络加密狗。如果我们没有在低数率的网络环境中测试过我们 Web 应用,极有可能在上线后收到一些意想不到的关于系统性能方面的抱怨。这个时候无论我们的 Web 应用界面多么地 Web 2.0,功能多么地强大,对于用户来说都失去了使用价值。

目前有很多工具能够模拟慢速网络,值得一提的是 Firefox Throttle,这是一个 Firefox 插件,你可以设置上载和下载的数率,并且监控当前带宽的使用情况。另一个非常有用的特性是它可以控制你的 localhost 的连接数率,对本地测试很有用。

另一个工具是 Sloppy,它是一个 Java Web Start application。

 

  本文向大家简单描述一下DIV+CSS相对IE6 IE7和IE8兼容问题整理,重点介绍一下IE6 IE7和IE8等浏览器的区别和联系,相信本文介绍一定会让你有所收获。

  DIV+CSS相对IE6 IE7和IE8兼容问题整理

  1.区别IE和非IE浏览器

以下是代码片段:
#tip{
background:blue;/*非IE背景?色*/
background:red9;/*IE6、IE7、IE8背景?色*/
}

  2.区别IE6,IE7,IE8,FF

  【区别符号】:「9」、「*」、「_」

  【示例】:

以下是代码片段:
#tip{
background:blue;/*Firefox背景变蓝色*/
background:red9;/*IE8背景变红色*/
*background:black;/*IE7背景变黑色*/
_background:orange;/*IE6背景变橘色*/
}

  【说明】:因为IE系列浏览器可读「9」,而IE6和IE7可读「*」(米字号),另外IE6可辨识「_」(底线),因此可以依照顺序写下来,就会让浏览器正确的读取到自己看得懂得CSS语法,所以就可以有效区分IE各版本和非IE浏览器(像是Firefox、Opera、 GoogleChrome、Safari等)。

  3.区别IE6、IE7、Firefox(方法1)

  【区别符号】:「*」、「_」

  【示例】:

以下是代码片段:
#tip{
background:blue;/*Firefox背景变蓝色*/
*background:black;/*IE7背景变黑色*/
_background:orange;/*IE6背景变橘色*/
}

  【说明】:IE7和IE6可读「*」(米字号),IE6又可以读「_」(底线),但是IE7却无法读取「_」,至于Firefox(非IE浏览器)则完全无法辨识「*」和「_」,因此就可以透过这样的差异性来区分IE6、IE7、Firefox

  4.区别IE6、IE7、Firefox(方法2)

  【区别符号】:「*」、「!important」

  【示例】:

以下是代码片段:
#tip{
background:blue;/*Firefox背景变蓝色*/
*background:green!important;/*IE7背景变绿色*/
*background:orange;/*IE6背景变橘色*/
}

  【说明】:IE7可以辨识「*」和「!important」,但是IE6只可以辨识「*」,却无法辨识「!important」,至于Firefox可以读取「!important」但不能辨识「*」因此可以透过这样的差异来有效区隔IE6、IE7、Firefox。

  我们知道,PHP语言的合理运用可以帮助我们实现导出Word文档的功能。今天我们将为大家介绍PHP处理Word转PDF的相关实现方法。

  PHP处理Word转PDF代码示例:

PHP代码
  1. <?php       
  2. set_time_limit(0);       
  3. function MakePropertyValue($name,$value,$osm){       
  4. $oStruct = $osm->Bridge_GetStruct       
  5. ("com.sun.star.beans.PropertyValue");       
  6. $oStruct->Name = $name;       
  7. $oStruct->Value = $value;       
  8. return $oStruct;       
  9. }       
  10. function word2pdf($doc_url$output_url){       
  11. $osm = new COM("com.sun.star.ServiceManager")       
  12. or die ("Please be sure that OpenOffice.org     
  13. is installed.
    "
    );       
  14. $args = array(MakePropertyValue("Hidden",true,$osm));       
  15. $oDesktop = $osm->createInstance("com.sun.star     
  16. .frame.Desktop");       
  17. $oWriterDoc = $oDesktop->loadComponentFromURL       
  18. ($doc_url,"_blank", 0, $args);       
  19. $export_args = array(MakePropertyValue       
  20. ("FilterName","writer_pdf_Export",$osm));       
  21. $oWriterDoc->storeToURL($output_url,$export_args);       
  22. $oWriterDoc->close(true);       
  23. }       
  24. $output_dir = "D:/LightTPD/htdocs/";       
  25. $doc_file = "D:/LightTPD/htdocs/2.doc";       
  26. $pdf_file = "2.pdf";       
  27. $output_file = $output_dir . $pdf_file;       
  28. $doc_file = "file:///" . $doc_file;       
  29. $output_file = "file:///" . $output_file;       
  30. word2pdf($doc_file,$output_file);       
  31. ?>  

    * 在支持position:fixed的浏览器上使用position:fixed,这样当拖动共同条的时候弹窗位置是固定的。
    * 优化了IE6下onscroll 事件绑定的函数

还需改进的地方(过段事件等项目应用的时候会修改):

    * 30秒后自动关闭
    * 方便的插入弹出内容

 

JavaScript代码
  1. var RBMessage={      
  2.     boxW:200,      
  3.     boxH:101,      
  4.     init:function(){      
  5.         var that = this;      
  6.         this.createBox();      
  7.         document.getElementById("msg_close").onclick = function() {      
  8.             that.BoxWin.style.display="none";      
  9.         }      
  10.     },      
  11.     bind: function() { //绑定窗口滚动条与大小变化事件      
  12.         var that = this,      
  13.         st, rt;      
  14.         window.onscroll = function() {      
  15.             if( !!window.ActiveXObject &amp;&amp; !window.XMLHttpRequest ){      
  16.                 clearTimeout(st);      
  17.                 clearTimeout(that.timer2);      
  18.                 that.setOpacity(0);      
  19.                 st = setTimeout(function() {      
  20.                     that.BoxWin.style.top = that.getY().top;      
  21.                     that.show();      
  22.                 },500);      
  23.             }      
  24.         };      
  25.         window.onresize = function(){      
  26.             if (!!window.ActiveXObject &amp;&amp; !window.XMLHttpRequest) {      
  27.                 clearTimeout(rt);      
  28.                 rt = setTimeout(function(){      
  29.                     that.BoxWin.style.top = that.getY().top      
  30.                 }, 100);      
  31.             }      
  32.         }      
  33.     },      
  34.     show: function() { //渐显      
  35.         clearInterval(this.timer2);      
  36.         var that = this,      
  37.         fx = this.fx(0, 100, 0.1),      
  38.         t = 0;      
  39.         this.timer2 = setInterval(function() {      
  40.             t = fx();      
  41.             that.setOpacity(t[0]);      
  42.             if (t[1] == 0) {      
  43.                 clearInterval(that.timer2)      
  44.             }      
  45.         },      
  46.         10);      
  47.     },      
  48.     fx: function(a, b, c) { //缓冲计算      
  49.         var cMath = Math[(a – b) > 0 ? "floor""ceil"],      
  50.         c = c || 0.1;      
  51.         return function() {      
  52.             return [a += cMath((b – a) * c), a – b]      
  53.         }      
  54.     },      
  55.     setOpacity: function(x) { //设置透明度      
  56.         var v = x >= 100 ? ‘‘‘Alpha(opacity=‘ + x + ‘)‘;      
  57.         this.BoxWin.style.visibility = x < = 0 ? ‘hidden‘‘visible‘//IE有绝对或相对定位内容不随父透明度变化的bug      
  58.         this.BoxWin.style.filter = v;      
  59.         this.BoxWin.style.opacity = x / 100;      
  60.     },      
  61.     getY: function() { //计算移动坐标      
  62.         var d = document,      
  63.         b = document.body,      
  64.         e = document.documentElement;      
  65.         var s = Math.max(b.scrollTop, e.scrollTop);      
  66.         var h = /BackCompat/i.test(document.compatMode) ? b.clientHeight: e.clientHeight;      
  67.         var h2 = this.BoxWin.offsetHeight;      
  68.         return {      
  69.             foot: s + h + h2 + 2 + ‘px‘,      
  70.             top: s + h – h2 – 2 + ‘px‘     
  71.         }      
  72.     },      
  73.     moveTo: function(y) { //移动动画      
  74.         clearInterval(this.timer);      
  75.         var that = this;      
  76.         var moveTopNum=-that.boxH;      
  77.         this.timer = setInterval(function() {      
  78.             moveTopNum+=5;      
  79.             that.BoxWin.style.bottom =  moveTopNum +‘px‘;      
  80.             if (moveTopNum >= 0) {      
  81.                 clearInterval(that.timer);      
  82.                 that.bind();      
  83.             }      
  84.         },50);      
  85.         return this;      
  86.     },      
  87.     createBox:function(){      
  88.         this.BoxWin=document.createElement(‘div‘);      
  89.         this.BoxWin.style.width = this.boxW+"px";      
  90.         this.BoxWin.style.height =  this.boxH+"px";      
  91.         this.BoxWin.style.bottom = – this.boxH+"px";      
  92.         this.BoxWin.id = "msg_win";      
  93.         this.BoxWin.innerHTML = ‘<div class="icos"><a href="javascript:void 0" title="关闭" id="msg_close">X</a></div><div id="msg_title">温馨提示(标题)</div><div id="msg_content"></div>‘;      
  94.         document.body.appendChild(this.BoxWin);      
  95.         var that = this;      
  96.         setTimeout(function() { //初始化最先位置      
  97.             that.BoxWin.style.display = ‘block‘;      
  98.             that.moveTo();      
  99.         },1000);      
  100.         return this;      
  101.     }      
  102. };      
  103. RBMessage.init();