chrome浏览器下的xdebug helper使用方法

自从安装了xdebug后,发现每次调试都需要从eclipse中先从头启动,然后一步步走到你要调试的页面,而不是说想什么时候调试就什么时候调试。

之前用zenddebugger的时候则是可以在任意页面启动调试,直接从浏览器通知开发环境需要调试。而不用先从开发环境启动调试。随时需要调试的时候就可以执行调试。

后来发现了chrome浏览器有一款插件叫xdebug helper,火狐下也有easy xdebug,下面主要来说chrome下的xdebug helper

安装完成xdebug helper后再浏览器地址栏的右侧能够看到一只小爬虫,点击后如下图所示:

20130224105419658

选择Debug,就会通知你的开发环境接下来的代码需要开始调试,选择disable,就会直接运行。

在eclipse中需要进行特别的设置:

进入window->Preferences->PHP->Debug
找到配置xdebug中的Accept remote session(JIT),选择为localhost,并保存。

在PHP的配置文件中对xdebug的设置需要特别注意,将xdebug.remote_autostart设置为off,如果设置为on,则会忽略在浏览器中是选择Debug还是Disable,都会通知eclipse进行调试

xdebug.remote_autostart = Off
这样,xdebug helper就设置好了

以下是我的php.ini中对xdebug的配置

 

发表在 BS架构后台语言, Web前台开发技术 | 标签为 | 留下评论

PHP中几种判断远程文件是否存在的方法

1、通过fsockopen函数判断

函数描述及例子

2、通过file_get_contents函数判断

3、通过curl组件判断

4、通过fopen方法判断

具体各函数的优缺点欢迎评论讨论。

发表在 BS架构后台语言 | 标签为 , | 留下评论

学习使用:before和:after伪元素

如果你一直密切关注着各种网页设计的博客,你可能已经注意到了:before和:after伪元素已经在前端开发中获得了相当多的关注。

学习使用:before和:after伪元素

为了补充说明上述内容(和利用当前发展的趋势),我收集一些完全在伪元素下运行的东西。本文主要针对这一类人群,即已经看到了用伪元素做出了很酷的东西,但想知道所有有关before在css技术里的运用。

尽管css 规范中包含其他的伪元素,我们焦点是 :before 和 :after。因此,为了简便起见,我所说的“伪元素”泛指这两个特别的伪元素。

伪元素能做什么呢?

“伪元素”,顾名思义。它创建了一个虚假的元素,并插入到目标元素内容之前或之后。

单词“pseudo”是希腊语的英译,它的基本意思是“说谎的,不诚实的,错误的。”因此叫伪元素是适合的。因为在文档中它不实际改变什么。相反的,它们是像幽灵一般的元素插入在css中,他们对用户是可见的,可以通过css控制。

基本语法

:before 和 :after 伪元素编码非常简单(和大多数的css属性一样不需要一大堆的前缀)。这里是一个简单的例子。

这个例子中提到了两件事情,第一,我们用#example:before和#example:after来目标锁定相同的元素.严格的说,在代码中他们是伪元素。

第二,在内容模块中提到,伪元素如果没有设置“content”属性,伪元素是无用的。

在这个例子中,拥有属性id的元素将有一个哈希符号放置内容之前,和一个句号在内容之后。

语法笔记

你可以设置content属性值为空,并且仅仅把他当做一个内容很少的盒子。像这样:

然而,你不可以完全的移除content属性,如果你移除了,伪元素将不会起作用。至少,content属性需要空引用作为它的值(即:content:“”)。

你也许注意到,你也可以用两个冒号(::before 和 ::after) 写伪元素,这个我以前讨论过的。简短的解释是,对于这两种语法没有什么不同,仅仅一点的不同是,伪元素(双冒号),css3中的伪类是(单冒号)

最后就语法而言。从技术上讲,你可以普遍的应用伪元素,不是放在特殊的元素上,像这样:

虽然上面是有效的,但是它十分的没用。代码会在DOM里的每个元素的内容之前插入散列符号。即使你删除了标签和它的所有内容,你仍会在页面上看见两个散列符号:一个在里,另一个在标签里,浏览器会自动创建哪一个。

插入内容的特点

正如前面提及的,插入的内容在页面的源码里是不可见的。只能在css里可见

同时,插入的元素在默认情况下是内联元素(或者,在html5中,在文本语义的类别里)。因此,为了给插入的元素赋予高度,填充,边距等等,你通常必须显式地定义它是一个块级元素。

这会是对如何设计伪元素的一个简要的说明,看我下面文本编辑器的这幅图

pseudo-element-2

在这个例子中,我高亮的样式将被应用到元素里插入到目标元素内容的前面和后面。

还要注意的是典型的CSS继承规则适用于插入的元素。例如,你有字体系列黑体,宋体,无衬线字体应用到body元素里,然后伪元素会像其他元素一样继承这些字体系列。

同样的,伪元素不会继承没有自然继承自父元素(如 padding and margins)的样式。

之前或之后是什么?

你的直觉是:before和:after伪元素可能是 插入的内容会被注入到目标元素的前或后注入。但是,正如上面提到的,不是这样的。

注入的内容将是有关联的目标元素的子元素,但它会被置于这个元素的任何内容的“前”或“后”。

为了证明这一点,看看下面的代码。首先,在HTML:

下面是插入伪元素的css:

在此html里,你所看的一段文字带有的是一个类的box,还有这样的文字“Other content”在里面(像你所会看到的一样,如果你看见了首页的源代码)。在css中,这段内容被设置了宽度,以及一些padding和可见的边框

然后我们有了伪元素。在这个例子中,它是一个散列符号插入到该段内容之前。随后css给了它一个边框以及一些padding和margins。

这里是浏览器中查看的结果:

 pseudo-element-3

 外面的盒子是这个段落。围绕有散列符号的边框表示伪元素的边界。所以,不是插入“before”到段落,而是伪元素被置于到此段落的“Other content”的前面。

插入非文本内容

我简要的提醒,你可以把属性的值置为空字符串或是插入文本内容。你基本上有属性的值要包含什么的两个额外的选择

首先,你可以包含一个指向一个图像的URL,就像在css里包含一个背景图像一样做你能做的

注意不能使用引号。如果你将URL用引号括起来,那么它会变成一个字符串和插入文本“url(image.jpg)”作为其内容,插入的而不是图像本身。

当然,你可以包含一个Data URI代替图像引用,正如你可以用css背景一样。

你还可以选择ATRR(X)中的函数的形式。此功能,根据规范 ,“把X属性的值以字符串的形式返回”

下面是一个例子:

attr()函数的功能是什么?它得到特定属性的值并把它作为插入的文本成为一个伪元素。

上面的代码会导致页面上的每一个<a>元素的href值立即被放置在每个各自的<a>元素的后面。在文档被打印时,它可以用作一个包含所有URl的打印样式表。

你也可以用这个函数去获取元素的title属性,或者甚至是microdata的值。当然,并不是所有的例子都符合自己的实际,但根据不同的情况,一个特定的属性值作为一个伪元素可以是实际的

然而,获取title或者图像的alt的值并作为实际的伪元素显示在页面上是不可能的。记住伪元素必须是被应用元素的子元素。图像,这是void(或者是空元素),没有子元素,所以它在这个列子中不可用,同样也适用于其他空元素,例如:<input>。

可怕的浏览器兼容性

任何前端技术的发展势头,第一个问题就是浏览器的支持。在这种情况之下,它不是个很大的问题。

浏览器支持:before 和 :after 伪元素栈,像这样:

  • Chrome 2+,
  • Firefox 3.5+ (3.0 had partial support),
  • Safari 1.3+,
  • Opera 9.2+,
  • IE8+ (with some minor bugs),
  • 几乎所有的移动浏览器。

唯一真正的问题是没有获得支持的(不用奇怪)IE6和IE7。所以,如果你的爱好者是在良好合适的web开发(或者其他具有较低IE版本的市场),你可以继续自由地使用伪元素。

伪元素不是决定性的

幸运的是,缺少伪元素不会造成大问题。大多数情况下,伪元素一般修饰(或者帮助)内容,不会给不支持的浏览器造成问题。所以,如果你的支持者具有较高的IE版本,你仍然可以在某种程度上使用它们。

一些提醒

正如前面提到的,伪元素不会出现在DOM中。这些元素不是真正的元素。因此,它们不是可用的。所以,不要使用伪元素生成内容,是您的网页的可用性和可访问性的关键。

另外一件需要记住的是,开发工具,例如火狐,不要用伪元素显示内容。所以,如果使用了,伪元素会造成难以维护和调试缓慢。

(更新:在评论中提到的,你可以使用谷歌的开发工具来查看一个伪元素相关联的风格,但不会出现在DOM元素里。同时,火狐在1.8版加入伪元素支持它。)

你所需要用有的理念是用这个技术以创造出实用的东西。与此同时,将来进一步研究CSS伪元素,一定要看看我们已经链接的一些文章。

英文原文:http://coding.smashingmagazine.com/2011/07/13/learning-to-use-the-before-and-after-pseudo-elements-in-css

发表在 Web前台开发技术 | 标签为 , | 留下评论

zend studio 如何改变白色的背景色

在编辑框上右击

Window —> preferences(首选项)—> General(普通)—> Editors(编辑器) —> Text Editors(文本编辑器);

在Appearance color options (颜色选项)中选择
Background color(背景颜色),再点击右侧的color选取颜色即可。

apply(提交)—> OK(好)。

中文可能翻译部太正确,自己琢磨下!

发表在 应用工具软件 | 标签为 | 留下评论

标签云(tagcloud)的球形JQuery插件

在蓝色看到有需要标签云的球形效果,我记得之前在网上见到过,印象比较深刻,就找出地址发给他了,接下来却还有人需要这个效果的JQuery插件,网上好像也有,但是我看现在这个就不错,就想想自己改成jquery插件,方便喜欢使用jquery插件的人使用。

首先,说明下,这个tagcloud来源于妙味茶馆(http://www.miaov.com/),里面有很多效果的教程,tagcloud只是其中一个,全部是用原生Javascript实现的,他们的Demo地址:http://www.miaov.com/miaov_demo/3dLable/miaov_demo.html,先感谢下他们的分享和教程。

接下来,看看此插件的效果图:

windstagball的Demo:

演示地址:http://www.lijian.net/p/windstagball/index.html

下载包:http://www.lijian.net/p/windstagball/windstagballv1.0.zip

使用方法很简单,引入jquery和jquery.windstagball.js,需要显示为标签的HTML如下:

注意,这里的div要设置CSS“position:relative;”,然后在页面实现:

当然,也可以使用参数,如下:

radius为标签云的半径,单位像素,speed则为运行速度,建议使用默认值10。

好了,再去看看你的页面,就有很炫的tagcloud效果了!

发表在 Web前台开发技术 | 标签为 , , | 留下评论

【转载】Modernizr——为HTML5和CSS3而生!

10年前,只有最尖端的网站设计师会为网页的布局和修饰使用CSS。那时的浏览器对CSS进行布局的支持即不完善又漏洞百出,所以这些人在坚持WEB标准化的同时,也不得不采用hacks来使得他们的页面在所有浏览器中都能正常显示。其中一个被使用的越来越多的hack技术是浏览器嗅探(browser sniffing),使用Javascript里的navigator.userAgent属性来判断用户使用的是什么品牌哪个版本的浏览器。浏览器嗅探技术可以快捷的将代码进行分支,以便针对不同的浏览器应用不同的指令。

今天,以CSS为基础进行的布局已经非常普遍,浏览器们对它的支持也非常的坚实。但是现在CSS3和HTML5来了,历史转了个圈又回到了原地——各个浏览器对这些新技术的支持又开始变得参差不齐了。我们早都习惯了书写整洁的符合标准的代码,也不会再使用CSS hacks或者浏览器嗅探这些不靠谱又低级的技术。我们也相信越来越多的用户会认同网站不必在所有浏览器里都看起来一样的理念。那面对当下这个熟悉的情形(浏览器支持的不同),我们该怎么做呢?简单:使用特征检测(feature detection),这意味着我们不必通过问浏览器“你是谁?”来做出不靠谱的推测。取而代之,我们问浏览器“你能做这个或那个吗”。这么来检测浏览器的能力是很简便的,但一个个的花时间去手工测试依然令人厌烦。此时Modernizr可以帮助我们。

Modernizr:专为HTML5和CSS3开发的功能检测类库

Modernizr是一个开源的JS库,它使得那些基于访客浏览器的不同(指对新标准支持性的差异)而开发不同级别体验的设计师的工作变得更为简单。它使得设计师可以在支持HTML5和CSS3的浏览器中充分利用HTML5和CSS3的特性进行开发,同时又不会牺牲其他不支持这些新技术的浏览器的控制。

当你在网页中嵌入Modernizr的脚本时,它会检测当前浏览器是否支持CSS3的特性,比如 @font-face、border-radius、 border-image、box-shadow、rgba() 等,同时也会检测是否支持HTML5的特性——比如audio、video、本地储存、和新的 <input>标签的类型和属性等。在获取到这些信息的基础上,你可以在那些支持这些功能的浏览器上使用它们,来决定是否创建一个基于JS的fallback,或者对那些不支持的浏览器进行简单的优雅降级。另外,Modernizr还可以令IE支持对HTML5的元素应用CSS样式,这样开发者就可以立即使用这些更富有语义化的标签了。

Modernizr是基于渐进增强理论来开发的,所以它支持并鼓励开发者一层一层的创建他们的网站。一切从一个应用了Javascript的空闲地基开始,一个接一个的添加增强的应用层。因为使用了Modernizr,所以你容易知道浏览器都支持什么。下面我们来看一个通过应用Modernizr来创建尖端网站的实例。

从应用Modernizr开始

首先从www.modernizr.com下载Modernizr的最新的稳定版(目前国内封了Modernizr的官网,我们可以从github上下载。或者更简单点,可以从博主这里下载最新的modernizr-2.7.0版的脚本文件),在官网上你还可以看到它支持检测的所有特性的清单。下载完最新版本以后,把它加入页面的<head>区域:

接下来,向<html>元素添加“no-js”的类。

当Modernizr运行的时候,它会把这个“no-js”的类变为“js”来使你知道它已经运行。Modernizr并不仅仅只做这一件事情,它还会为所有它检测过的特性添加class类,如果浏览器不支持某个特性,它就为该特性对应的类名加上“no-”的前缀。所以,你的<html>元素可能会变得看起来像下面这个样子:

Modernizr同时还会创建一个JS对象,被命名为“Modernizr”,其内容是为每一个检测完的特性给出的布尔值结果组成的列表。如果浏览器支持新的canvas元素,那么“Modernizr.canvas”的值就是true;如果浏览器不支持这个新元素,那它对应的值就是false。这个JS对象针对某些功能还会包含更为详细的信息,如“Modernizr.video.h264”会告诉你浏览器是否支持这个特殊的编解码器。“Modernizr.inputtypes.search”会告诉你当前浏览器是否支持新的search input类型,等等。

下面,我们要增强这个页面使得它更有意思。我想为头部的h1应用一个奇特的文字效果,把关于检测特性的列表分为两栏,然后将带有一张照片的关于Modernizr的部分的一切都弄到右边去。我还要把围绕页面内容的边框变美点。现在,更给力的CSS3使你可以对一条规则添加更多的属性,如果浏览器不支持这些属性,它会忽略它们。配合使用CSS的层叠(继承),你可以不必依赖Modernizr而使用像“border-radius”这样的新属性。不过,使用Modernizr可以为你提供一些既有手段提供不了的功能:根据浏览器对新东西支持的差异动态修改的<html>的类名。我会通过对我们的页面添加2条新的规则来说明这点:

第一条规则为“#content ”元素添加了一个12像素的圆角。但在既有的页面里我们已经为“#content ”元素设置了一个属性值为“2px outset #666”的边框,这在box是直角的时候是蛮好看的,但在圆角情况下就不是了。感谢Modernizr,我可以在浏览器支持“border-radius”的情况下给box设置一个1px的实边。

第二条规则更进步了一点,我们为“#content ”元素添加了一个阴影,并且针对支持“box-shadow”属性的浏览器一并移除了border属性。为什么呢?因为大部分浏览器并不为“边框附带边角”的组合外加阴影这样的效果提供一个好的表现(这是一个应该被注意的浏览器的瑕疵,但我们现在却必须忍受它)。同不使用阴影只使用边框相比,我宁可只使用阴影包围元素。采用这种方式,我可以拥有全世界最好的,准确点的,最好的一种CSS表现:在支持“box-shadow”属性的浏览器里将会呈现一个美妙的阴影;只支持“border-radius”属性的浏览器将会呈现一个好看的圆角薄边框;对于那些这2者都不支持的破烂浏览器,我们会看到一个2像素的直角边框。

下面我们要为header应用一个自定义的特殊字体,下面的是我们目前针对h1的声明,没改动版的:

这些声明在我们的基础网页里工作良好,27像素的文字大小也很适合我们为h1设置的那些字体的展示。但对于我要用的名叫“Beautiful”的字体来说,27像素就太小了。下面我们要添加其他的规则来使用这个自定义字体:

首先,我们添加“@font-face”声明,并在其中为我们的自定义字体指定路径、文件名和字体名。之后我们用一条CSS语句为我们的h1选择字体样式。你会看到,我这里选择了一个很大的字号,那是因为“Beautiful”字体本身就比其他字体的文字要小很多,所以我们必须要指示浏览器在展示我们自定义字体的时候,给予h1一个很大的字号。

此外,我们漂亮的手写体文字在文字阴影方面存在一些渲染问题,所以我们要在浏览器决定使用自定义文字时取消文字的阴影。另外,关于检测特征部分的列表还需要被分为两栏。为了达到目的,我要使用牛叉的CSS columns 属性,这一属性会使浏览器把列表智能分栏而不会打乱它的顺序,而我们的列表,虽然没有数字序号,却也是按照字母顺序排列的。当然,不是所有的浏览器都支持这一属性,对于那些不支持的浏览器,我们使用浮动来达到2栏的目的——使用了浮动后列表在视觉上不会再按照字母顺序排列,但那也好过什么都没有。

我又一次使用了Modernizr来针对不同的情况设置不同的属性。如果浏览器支持CSS columns,它就会把列表完美的分为2栏,如果不支持,通过Modernizr为<html>添加的“no-csscolumns”类我们也可以用浮动的方式使得列表变为两栏,虽然不那么完美,但也比直接来一个长串的单栏列表强。

这里您可能注意到了我为属性添加了不同的前缀(-moz-、-webkit-、-o-),这是因为不同的浏览器厂商对该功能的实现有不同的定义,所以要实现该功能需要针对不同的浏览器加上它们对应的前缀。

我们将为我们的页面添加进更多的渐进式增强效果来结束这篇教程。基于WebKit的浏览器支持一些更牛叉的特效,如CSS变换、动画和三维转换等。并且我想在最后一个阶段的页面中应用一些这类特效。再一次的,这些属性会被添加进我们既有的CSS中并在不支持它们的浏览器中给忽视。所以,针对这种一方面是渐进增强一方面是不被支持的情况,使用Modernizr是恰当的。

首先设置的:

@keyframes规则是新的CSS animations规范中的一部分,目前只有WebKit支持。它容许你针对任何属性声明一个完整的动画路径,并在你喜欢的任何阶段改变它们。想知道关于animations的更多知识,请阅读 W3C Working Draft specification

下面我们添加使得我们一个元素在三维空间里旋转的代码:

因为logo要转动,且又希望它转的时候和背景相处的融洽些,于是这里用了一个png格式的文件。我还采用了一个“overflow:hidden”属性来隐藏设置了缩进-9999像素的header里的文字。使元素以3D的形式旋转虽然有趣却并不太美观。最终,我们选择使用animation规则,设置它的旋转周期为2秒钟,沿着自身的中轴线旋转,永不停止。

最终的页面看起来很给力,甚至还针对WebKit浏览器设置了好玩的动画。我希望到现在你能明白使用Modernizr可以使你对网站控制的手腕变得多么牛叉,以及它可以令真正的渐进增强变得多么简单。这还不仅仅是Modernizr的全部好处,它还可以帮你建立基于JS的fallbacks以及可以帮你应用html5那些牛掰的新特性。

发表在 Web前台开发技术 | 标签为 , | 留下评论

Mysql中Memory引擎内存类型表详解

Memory存储引擎(老版本也叫做heap存储引擎),顾名思义是在内存中存储所有的数据,它具有以下两个明显特征:

内存中存储数据,非常高速;

mysql关闭后所有数据消失,mysql启动时会创建空表;

基于上面两个重要特征,我们一般用它来存储一些在短时间内需要高速访问但是无需在磁盘持久化的数据,例如在单点登录(SSO)的一种解决方案中有一个非常适合的应用场景:用户从网站A跳转到网站B,这时候网站A需要为此次跳转生成一个令牌并发送给网站B,此时我们可以把令牌存储到内存表中,网站B接受到令牌之后,会通过一个服务器端请求网站A来验证令牌的正确性:

SSO的整个过程注重性能,需要高效访问;

网络跳转的速度是很快的,因此令牌的生命周期很短,验证一次之后为了防止重复使用,需要失效该令牌,因此无需持久化存储。(根据经验,一个令牌的生命周期往往只有几秒)

当然,memory存储引擎也是一个绝佳的cache解决方案,本身jdbc操作就很容易被java程序员接受;而且可以对已有的一些程序在极少改写代码的情况下来提高性能,例如对一些常用资源的查询如省市信息,如果以往是通过直接查询数据,现在改为从内存表中读取,几乎是没有任何改造成本的;且mysql的易用性也免去了对其他cache服务器的学习成本。

如何创建内存表?

创建内存表非常的简单,只需注明 ENGINE= MEMORY 即可:

CREATE TABLE tablename ( columnName varchar(256) NOT NUL) ENGINE=MEMORY DEFAULT CHARSET=latin1 MAX_ROWS=100000000;

注意:

当内存表中的数据大于max_heap_table_size设定的容量大小时,mysql会转换超出的数据存储到磁盘上,因此这是性能就大打折扣了,所以我们还需要根据我们的实际情况调整max_heap_table_size,例如在.cnf文件中[mysqld]的下面加入:

max_heap_table_size = 2048M

另外在建表语句中还可以通过MAX_ROWS来控制表的记录数。

发表在 数据库相关技术 | 标签为 , | 留下评论

如何用Navicat通过Http方式连接服务器的MySQL数据库

如果网站空间服务供应商不提供远程连接MySQL,也就无法利用NaviCat客户端通过填写服务器地址来连接远程服务器,这时该怎么办呢?

之前一直是通过Navicat的ssh方式来连接服务器的MySql数据库,今天碰到某服务器不支持ssh连接,仅支持ftp连接。

仔细看了一下Navicat发现在SSH选项卡后面有个HTTP的选项卡,这是干什么用的呢?

H[DV1~XX$ZR$5TP_B]VC03M

 经过一番的百度谷歌之后终于会用HTTP来连接数据服务器的数据库了。

具体步骤如下:

首先到NaviCat官网上去下载最新版本的NaviCat。安装完成后,打开NaviCat,如下图所示:

navicat01

然后点击左上角的连接,弹出新键连接信息,如下图所示:

5855U98_UCY8D61I~JS{C0D

 

在主机名IP地址那里填写localhost或127.0.0.1。

用户名与密码一栏则填写你所在的数据库用户名与密码。

这时候还不能连接数据库的,需要通过HTTP通道的形式进行数据库连接。

点击连接属性标签栏中的HTTP,如下图所示:

navicat03

 

勾选使用HTTP通道后,在通道地址一栏输入你的网址与后台文件地址。

例如:https://blog.zzstudio.net/ntunnel_mysql.php  , 这里说明一下通道地址,前半部份:https://blog.zzstudio.net/ 是指你的服务器的域名,后半部份:ntunnel_mysql.php是指NaviCat客户端后台连接地址。这里ntunnel_mysql.php可以根据你自己的喜好去重命名。那么,这个ntunnel_mysql.php文件在哪里找呢?

这个ntunnel_mysql.php文件在你的Navicat安装目录中,例如默认的安装目录:

navicat04

 

找到该文件后,我们利用FlashFxp或其它FTP工具把该文件上传到我们的网站根目录下:

navicat05

然后测试一下Navicat看看:

navicat06

 

提示连接成功就说明已经配置成功了!是不是很神奇很强大呢。

 

发表在 应用工具软件, 数据库相关技术 | 标签为 , , , | 留下评论

【分享】山东网通dns

山东省烟台市(中国网通)
202.102.154.3
202.102.152.3

山东省济宁市(中国网通)
首选DNS:202.102.154.3
备份DNS:202.102.152.3

山东省青岛市(中国网通)
首选DNS :202.102.134.68
备份DNS :202.102.128.68

山东省滨州市(中国网通)
首选DNS :202.102.134.68
备份DNS :202.102.128.68

山东省临沂市(中国网通)
首选DNS:202.102.154.3
备份DNS:202.102.152.3

山东省临沂市(中国电信)
首选 DNS : 219.146.0.130
备用 DNS : 219.150.32.132

山东省德州市(中国网通)
首选DNS 202.102.152.3
备选DNS 202.102.154.3

山东滕州市(中国网通)
首选DNS:202.102.128.68
备份DNS:202.102.134.68

山东省菏泽市(中国网通)
首选DNS: 202.102.152.3
备份DNS: 202.102.154.3

山东省枣庄市(中国电信)
首选DNS:219.146.0.130
备用DNS:219.150.32.132

山东省淄博市(中国网通)
首选DNS:202.102.154.3
备份DNS:202.102.152.3

山东省聊城市(中国网通)
首选DNS:202.102.152.3
备用DNS:202.102.154.3

山东省东营市(中国网通)
首选DNS:202.102.152.3
备选DNS:202.102.154.3

山东省东营市(中国网通)
首选DNS:202.102.154.3
备选DNS:202.102.128.68

山东省威海市(中国网通)
首选DNS:202.102.154.3
备份DNS:202.102.152.3

发表在 生活随笔 | 标签为 | 留下评论

【分享】用同一张图讲解5种PS抠图方法

先贴原图

第一抠

1、先用钢笔或套索工具勾出人物的主体部分,做的时候一定要注意,蚂蚁线不要太到边缘,更不能外出,否则扣出来的效果是不理想的。

 

2、然后进行羽化,羽化的作用是使边缘柔和,不会显得生硬。 

 

3、羽化值根据图像的面积的大小和所选范围的大小而设定,我这里设定为1。 

4、然后ctrl+j自动生成图层1。 

 

5、我将图层1, 改为“人物主体”,目的为后来的另外几种抠图备用,使大家能一目了然。 

 

6、关闭人物主体前的眼睛,选中背景层,回到通道。大家注意看,蓝色通道的背景很干净,呈现单一的灰白,那么蓝通道就可以利用了。 

 

7、将蓝通道拖到创建新通道图标按钮处,得到一个新的“蓝 副本”通道,如图所示: 

8、 ctrl+i将蓝副本通道反相,反相后,原来白的变黑,黑的变白了。但由于原来白的部分不是纯白,当然反相后就不可能是纯黑了,为了将黑度增强,就必须要进行下一步的色阶调整了。 

 

9、ctrl+L 色阶面版跳出来了。 

 

10、将中间的小三角往右拖,圆圈内的数值由原来的1变为0.88了,蓝通道显得更黑了。 

 

11、按住ctrl 用鼠标点击“蓝 副本”通道,蚂蚁线出现了,现在的状态为选取了白色区域,我们要的就是这个白色选区了。 

12、不要取消蚂蚁线,回到背景。 

 

13、ctrl+j自动生成“图层1”,隐藏背景层前的眼睛,效果如图所示: 

 

14、按住ctrl,用鼠标点击红圈内的按钮,在图层1的下方出现“图层2” ,随意填充一种黄色。如图所示: 

 

15、大家看,头发边缘效果不好,显得有些灰白,用图层菜单——修边——移去白色杂边命令可清除掉。

( 当然也可用“正片叠底”在后面的方法里我会用到的) 

 

16、现在,发丝边缘现在很漂亮了。 

 

17、让人物主体层前的眼睛出现,该层为可见。大家看,现在总的效果是不是好看了呀!这种观察通道,选取可利用通道抠图到此完毕。 

 

第二抠

1、教程名是“一图五抠”,第一抠完了,现在进行新的第二抠了,假如“蓝通道”同红、绿两通道一样,背景部分是花的,而不是单一的灰白怎么办呢?我现在以绿通道为例,来做个示范。

 

2、同样,复制绿通道为“绿 副本”,然后ctrl+i反相。 

3、将图放大观察,背景部分有明显的灰色块。如过用色阶来加深绿副本通道,若为了使背景够黑加深过多,会损失发丝。所以在进行色阶调整前先用画笔工具往背景上涂抹黑色。 

 

4、现在背景比较黑了。大家注意,要涂抹整个背景。 

 

5、ctrl+L色阶调整,如图: 

 

6、按住ctrl,用鼠标点击“绿副本”通道,蚂蚁线出现了: 

7、保持蚂蚁线不取消,回到背景层。 

 

8、按ctrl+j出现“图层1”如图所示: 

 

9、按住ctrl,用鼠标点击红圈处,在图层1的下方出现“图层2”,填充黄色,效果如图所示: 

 

10、大家看上图,同样是发丝边缘不美观。我这次将图层1的模式设定为“正片叠底”,注意看红色椭圆里的内容。大家看效果立即好起来了。(当然大家也可象第一抠里那样将图层1移去白色杂边)

让“人物主体层”前的眼睛出现,该层为可见。大家看,效果也不错了。
第二抠到此完毕!

第三抠

1、接下来进行第三抠,用“抽出”抠图,复制背景层为“背景副本”


2、这是抽出面板了,注意我用红色椭圆圈住的几个地方。用边缘高光器工具在人物头发上涂抹一层绿色(涂抹其它颜色也可以),强制前景色为“黑色”,(黑色是怎样来的呢?用鼠标双击默认的白色,就会跳出拾色器,颜色应有尽有了)。设置完后点按“好”

 

3、回到“背景副本”层,效果如图所示:

让“人物主体层”前的眼睛出现。该层为可见。大家看,效果也不错!第三抠到此完毕!

第四抠

1、现在进行第四扣,色彩范围抠图。将前景色设定为“黑色”,注意我用红圈圈住的地方。


2、不用更改任何设置,直接点按“好”

3、蚂蚁线出现了。

现在进行第四扣,色彩范围抠图。

1、将前景色设定为“黑色”,注意我用红圈圈住的地方。


2、不用更改任何设置,直接点按“好”

3、蚂蚁线出现了。

4、ctrl+j出现“图层1” 效果如图所示:

5、在图层1的下方新建“图层2”,填充黄色,效果如图所示:

6、将图层1移去白色杂边。

将“人物主体层”为可见,让前面眼睛出现。显示效果如图所示:第四抠到此完毕!

第五抠

1、最后进行第五抠了,直接使用“正片叠底”。复制蓝通道为“蓝 副本”

2、ctrl+L色阶调整,这回三角滑块是向左方向拉的,使蓝副本通道里的黑白更为分明,注意输入色阶值的变化。

 

3、c选中“蓝副本通道”,ctrl+a 全选,然后ctrl+c复制。 

 

4、回到图层,新建图层1,将刚才的复制粘贴到图层1,效果如图所示: 

 

5、在图层1的下方新建“图层2”填充黄色,然后将“图层1”设定为“正片叠底”(注意红色椭圆里的内容)。效果如图所示: 

 

6、让人物层前的眼睛出现,该层为可见。大家看,效果也是不错,第五抠到此完毕。到此整个教程的抠图结束了。 

发表在 应用工具软件 | 标签为 | 留下评论