Ai怎么画一个禁止钓鱼的指示牌图标?

  Ai怎么画一个禁止钓鱼的指示牌图标?
  Ai怎么画一个禁止钓鱼的指示牌图标?有的地方是不能钓鱼的,很危险,该怎么绘制一个禁止垂钓的图标呢?下面我们就来看看ai绘制禁止钓鱼图标的教程,需要的朋友可以参考下
  
  
  
  
  
  

Ai简单绘制禁止钓鱼的小图标

  

软件名称:Adobe Illustrator CS6 (AI cs6) 精简绿色中文版(32位+64位)软件大小:205MB更新时间:2014-05-11

  

1、在Ai软件中,新建一个800*800的文档,选择椭圆工具,按住shift画两个正圆图形,并填充颜色,如图所示

  

  

2、然后选择钢笔工具,勾出如下的图形,并填充颜色,再选择椭圆工具,按住shift画一个正圆图形,并填充颜色,如图所示

  

  

  

3、接着选择钢笔工具,勾出一条路径,描边改为6pt,如图所示

  

  

4、再选择钢笔工具,勾出三角形,并填充颜色,如图所示

  

  

5、最后选择矩形工具,画一个矩形图形,并填充颜色,如图所示

  

  

6、效果如下图所示

  

  

相关推荐:

  

Ai怎么绘制一个地球仪图标?

  

Ai怎么绘制一个便利店的小图标?

  

Ai怎么绘制一个简单的爱心袋子图标?

继续阅读

把cdr转换成psd分层图层详细步骤介绍

  把cdr转换成psd分层图层详细步骤介绍
  下面为大家介绍把cdr转换成psd分层图层详细步骤,教程很不错,很适合新手来学习,推荐到钱柜777娱乐官网,喜欢的朋友一起来学习吧
  
  
  
  
  
  

在平面设计方面涉及过的小伙伴,可能曾经都烦恼过这样的问题,cdr的文件怎么样才能转换为psd格式的分层图层文件的。很多时候,我们在网上找到的素材也大多数是矢量图,是cdr格式的,但是可能有时候对cdr不是那么熟悉,就想转换成psd来使用。曾经小编也试过很多方法来转换,但是都没有成功。现在跟大家分享一下自己成功转换的两个方法。具体如下:

  

  

工具/原料

  

cdr、ps、ai

  

直接转换法:

  

打开自己电脑桌面上的cdr软件,进入它的界面以后,我们就点一下菜单栏里面的“文件”,在下拉列表里面选择“打开”。接着,在弹出来的“打开绘图”窗口里找到自己的cdr文件,点击选中它之后,再点一下下面的“打开”。

  

  

  

在界面上方的菜单栏里找到一个“工具”,点一下它,等它弹出下拉列表之后,在上面找到并且选择“对象管理器”。

  

  

在刚才调出来这个的“对象管理器”面板上,小伙伴们可以看到“图层1”前面有个十字小方框加,点开那个加。

  

  

接着,小伙伴们在“对象管理器”界面底下点一下第一个类似于纸张铺起来的图案按钮“新建图层”,就会看到刚才的“图层1”上面出现了一个“图层2”。

  

  

选中图层1里面的群组元素,将它移动到图层2里面去,如果小伙伴们想要非常精细的psd分层文件的话,就还需要点开群组前面的加,一个个元素移动到新建的每一个图层里面哦。

  

  

  

新建N个图层,把每个元素分别放到一个个单独的图层上去,直到全部弄完。这个方法似乎有点麻烦,但也胜在可以导出psd分层文件。对于精细程度要求不高的小伙伴们,还是可以使用这个方法的。

  

  

前面弄好以后,小伙伴们就点一下cdr软件界面左上角的“文件”,再在下拉列表里面选择那个“导出”。

  

  

在打开的这个“导出”窗口上,大家可以看到一栏“保存类型”,如果上面默认的格式不是小伙伴们需要的psd格式的,就在它的右边点一下那个小小的倒三角形按钮。

  

  

  

保存的格式的确定为我们需要的psd格式以后,小伙伴们再点一下右下角的“导出”。

  

  

接下来就是非常重要的一步啦,成不成功的关键之处估计就是这里的设置啦。在“转换为位图”界面上,在“分辨率”一栏前记得勾选“保存原始大小”;psd的颜色模式我们一般都设置为RGB;而在“选项”里面也要记得勾选那个“保持图层”。都弄好后再“确定”,具体的设置可以看下图的详细展示。

  

  

小伙伴们导出了自己想要的psd文件之后,再启动ps,在ps里面打开它,就会看到里面有很多图层了。精不精细就看我们前面所建立的图层是否足够多,每个元素是否分解得精细啦。

  

  

间接转换法:

  

cdr转AI:小伙伴们先在cdr软件里面点一下菜单栏里的“文件”,在出现的下拉列表里选择“导出”,接着就是在“导出”的界面上记得选择保存的格式为AI,然后再“导出”。导出的时候会弹出一个如下面的图那样的小窗口,不用理它,直接确定即可。

  

  

  

  

AI转PSD:第一,打开AI软件之后,小伙伴们就选择界面上方菜单栏里的“文件”,在出现的下拉列表里选择“打开”。接着在“打开”的界面上找到刚才在cdr里面导出的ai源文件,点一下“打开”。在“转换为画板”的界面上直接“确定”即可。

  

  

  

  

打开了ai源文件之后,小伙伴们直接在ai界面的那个左上角继续点一下“文件”,接着在下拉列表里选择“导出”,导出的时候,千万要记得选择我们需要的psd格式后再“导出”。在“photoshop导出选项”界面上,颜色的模型一般我们考虑为RGB,但是如果我们有印刷的要求的,可以保留那个CMKY,再“确定”即可。

  

  

  

  

等psd导出完成后,小伙伴们再来打开ps软件,在ps里面,可以看到非常精细的图层哦。这种方法好处是做法简单,图层又精细,但是需要借助一个AI软件来实现,也就是说,一次格式的转换,需要用到三个平面设计的软件。如果没有安装AI这个软件的话,而又需要导出psd精细图层的,不妨考虑百度搜索安装一个哦。

  

  

END

继续阅读

Ai简单绘制植树的圆形图标

  这篇教程是向钱柜777娱乐官网的朋友分享Ai简单绘制植树的圆形图标方法,教程比较基础,适合新手来学习,推荐到钱柜777娱乐官网,来看看吧
  
  
  
  
  
  今天为大家分享Ai简单绘制植树的圆形图标,教程很不错,一起来学习吧!
  

步骤

  

在Ai软件中,新建一个800*800的文档,选择椭圆工具,按住shift画两个正圆图形,并填充颜色,如图所示

  

  

然后选择钢笔工具,勾出如下的路径,选中路径和圆形到窗口—路径查找器—点击分割,如图所示

  

  

  

接着点击图形右键取消编组,把多余的图形删除掉,并给分割后的图形填充任意颜色,如图所示

  

  

  

接下来选择椭圆工具,画3个椭圆图形,并填充颜色,再选择钢笔工具,勾出3条路径,描边改为3pt,如图所示

  

  

  

最后选择椭圆工具,画一个椭圆图形,并添加渐变颜色,如图所示

  

  

效果如下图所示

  

  

以上就是Ai简单绘制植树的圆形图标方法介绍,操作很简单的,希望能对大家有所帮助!

继续阅读

PS后期打造唯美浪漫的夜景婚片

  PS后期打造唯美浪漫的夜景婚片
  这篇教程是向钱柜777娱乐官网的朋友分享PS后期打造唯美浪漫的夜景婚片方法,教程真的很不错,打造出来的效果非常漂亮,推荐到钱柜777娱乐官网,喜欢的朋友可以参考本文,来看看吧
  
  
  
  
  
  今天为大家分享PS后期打造唯美浪漫的夜景婚片方法,教程最终打造出来的景色非常漂亮,而且介绍的很详细,推荐过来,希望大家喜欢!
  

效果图:

  

  

原图:

  

  

分享图片类型:很多图片的风格定位需要很多关于服装道具场景的了解,而我拿到原图的时候(感谢思同来自韩国的原图)

  

第一想法就是夜景!(这句基本上是废话 明显是天黑了才开始拍的………)天空阴沉画面偏暗 路灯还没有开启,(拍的太早了 可以等路灯开的呢!)简单分析之后正式开工首先我们在调节的时候要考虑夜景的色彩在,在我们的思维里面夜景大部分都是蓝色 黑色 和有温暖的灯光。路灯没有开始我们就需要制作开启的效果和模拟路灯的光线照射,天空不够美,后期需要添加一个,人物主题不够明显。针对以上问题进行修改和制作:

  

原图打开

  

  

  

  

  

  

  

  

  

  

  

我们针对图片的任何光线和色彩的调整都是为了更好的表达画面的主体和氛围颜色也是模拟夜景的色彩进行搭配,因为不是在环境光比较打乱的街边。所以 颜色以(蓝色和洋红色为主)如果在很多灯光交错的区域 建议 黄红 红色 橙色为主 暗部少量蓝色 气氛较好。

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

教程结束,以上就是PS后期打造唯美浪漫的夜景婚片方法介绍,希望这篇文章能对大家有所帮助!

继续阅读

PS鼠绘扁平化风格的时钟图标

  这篇教程是向钱柜777娱乐官网的朋友分享PS鼠绘扁平化风格的时钟图标方法,教程比较基础,绘制出来的时钟图标非常漂亮,推荐过来,一起来学习吧
  
  
  
  
  
  这篇教程教钱柜777娱乐官网的PS鼠绘学习者们使用PS鼠绘扁平化钟表图标,教程属于比较基础的扁平化教程了,难度中等。推荐一下和钱柜777娱乐官网的朋友们一起分享,一起学习了,我们先来看看最终的效果图吧:
  

  

  

  

  

  

  

  

  

  

教程结束,以上就是PS鼠绘扁平化风格的时钟图标方法介绍,操作很简单的,大家学会了吗?希望这篇文章能对大家有所帮助!

继续阅读

ASP动态网页制作技术经验分享

  本文介绍的是ASP动态网页制作技术的一些经验心得,主要从四个大的方面,给大家介绍的,需要的朋友可以参考下
  
  
  

学好一门编程语言有两个条件是必不可少的,一是理论与实践结合。在实际例程去验证书本上的理论能加深你对理论的理解;二是学会总结,把学习、运用中的心得体会记下来,当成一种经验或者教训加以提炼并在日后的应用中加以改进,一定能提高你对这门编程语言的认识。以下是笔者在学习与运用ASP编程中的两点经验,希望能对大家有所帮助。

  

ASP页面内VBScript和JScript的交互

  

ASP具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数。ASP开发环境提供了两种脚本引擎,即VBScript(缺省)和JScript。不过,开发者并没有被限制于只能使用这两种语言,只要能够提供合适的ActiveX脚本引擎就能使用任何脚本语言。

  

脚本语言的选择往往基于许多不同原因:它可能是开发者最为熟悉的语言,可能是对给定工程来说能够提供最多特色支持的,也有可能是最具效率的。不同的环境和要求使得我们在选择脚本语言时注重不同的因素,同时也使得我们在某些时候面临选定的脚本语言不能直接提供其它语言固有的函数这一问题,或某个脚本已经写成但用的却是另外一种脚本语言。

  

此时应该怎么办?是否需要用当前所用的脚本语言重写这些脚本?或者说,是否有可能在一种脚本语言中调用其它脚本语言的内置函数?本文要说明的就是在ASP应用中如何让VBScript脚本和JScript脚本交互以最大限度地获得两种脚本语言的特色支持。

  

一、VBScript和JScript的内置函数

  

在VBScript和JScript中,有大量的内置函数功能是相同或类似的。然而,在一种脚本语言中内置的函数并非总是在另外一种脚本语言中也有对应的函数。例如,VBScript提供了许多用于操作字符串和格式化数据的函数,这些函数在JScript中并不存在。这些函数包括StrReverse()、Filter()以及FormatCurrency()等。在另一方面,JScript所提供的用于管理数组、字符串编码等的函数在VBScript中也没有定义,如join()、reverse()、pow()、位操作、escape()和unescape()等。

  

那么,如果在JScript程序中需要一个VBscript函数该怎么办呢?

  

二、异种脚本的互相调用

  

如果需要在JScript脚本中调用一个VBScript中内置的函数,则应该写一个VBScript用户定义函数(在这里调用VBScript内置函数),然后在JScript脚本中象调用公用JScript函数一样调用这个用户定义函数。

  

例如,如果要调用的VBSCript内置函数是FormatCurrency(),则可以声明如下自定义函数:

  

以下为引用的内容:

  
  

  < SCRIPT LANGUAGE="VBSCRIPT" RUNAT="SERVER">
  Function FormatValue(Value)
  FormatValue = FormatCurrency(Value)
  End Function
  < /SCRIPT>
  

  
  

接下来在JScript代码中就可以象普通JScript函数一样调用FormatValue()了。用类似的方法也可以实现VBScript代码调用JScript函数。

  

应用同样的规则,我们可以在任何脚本内调用任何用户定义函数。不过,从JScript脚本内调用一个不带参数的VBScript过程(Sub)时应略加注意,此时在JScript中应该象调用一个不带参数的JScript函数一样调用它,如用foo()调用VBScript Sub foo过程。

  

三、数据共享

  

在某些情形下混合运用VBScript和JScript函数是非常有用的,但在不同语言脚本之间共享数据也可能很有用。实现这种共享的方法很简单:不管使用的是什么语言,只要是在页面级声明的变量就可以任意引用。

  

对象的使用方法也相似,可以任意选用合适的语言读取、修改属性或调用对象的方法。当然给定对象的属性和方法是由创建该对象实例的语言所定义的。正如上例VBScript的过程调用,当从JScript中调用一个不带参数的VBScript对象的方法时,其调用方法也遵从JScript的调用规则,反之亦然。

  

四、数组管理

  

数组共享问题稍微复杂一点。虽然数组也象其它变量一样可以在不同语言脚本之间共享,但必须注意兼容方面的问题。

  

VBScript数组在JScript下可以用VBScript的符引用,即用myArray(2)引用数组元素而不是JScript的数组元素引用符myArray[2]。此外,还可以使用一个特殊的JScript对象——VBArray对象将VBScript数组转换为JScript数组。下面的代码从VBScript数组myVBArray创建JScript数组myJSArray:

  

以下为引用的内容:

  
  

  var Temp = new VBArray(myVBArray)
  var myJSArray
  myJSArray = Temp.toArray()
  

  
  

上述代码首先创建一个临时的VBArray对象,然后使用它的toArray()方法将自己转换为JScript数组。此后就可以象普通JScript数组一样使用myJSArray,如myJSArray[1]。但应当注意的是,toArray()方法将把一个多维的VBArray转换为一维的JScript数组。

  

从VBScript中引用JScript数组更为复杂。虽然在VBScript中我们可以直接访问JScript数组相关的方法和属性,但没有直接访问JScript数组的单个元素的方法。也就是说,我们可以在VBScript脚本中读取JScript数组的长度属性,如下所示:

  

x = myJSArray.length
  但无法直接读取该数组的单个元素,下面的VBScript代码是不正确的:

  

x = myJSArray(3)
  解决该问题的一个可行的方法是执行一个转换过程,如下面的代码所示,此处假定VBScript是缺省的脚本语言:

  

以下为引用的内容:

  
  

  < %
  Dim Temp
  Dim myVBArray
  Temp = myJSArray.join(", ")
  myVBArray = Split(Temp, ", ")
  %> 

  
  

此处的JScript join()方法将数组myJSArray元素转换到一个以逗为分割符的字符串,VBScript Split()函数将字符串转换为VBScript数组。注意这里我们是在VBScript环境下调用JScript的join方法。依照此例,我们可以通过自定义VBScript函数来模拟JScript的VBArray对象的toArray()方法以实现JScript数组到VBScript数组的转换。

  

用模板建立动态ASP页

  

对于模板,我想大家可能都有一些概念,在word中很多模板,设计好了大概的版面,你只要用你自己的话填充那些占位字符就好了。这儿的模板大概也就是这个意思,页面中相对稳定的部分固定下来,其他的部分根不同的情况在输入不同的内容。其实在DreamWeaver中也有模板的功能,不过那个静态的,只能手动填充内容,而这儿讲的是动态的自动的内容填充。

  

首先,我先来解释一下为什么要用到模板文件。有时候,模板能够带给你对网页功能和布局更为完整的概念。当你看到Word的模板格式之后,就知道最后版面是个什么样子的了,在这儿也是如此。例如,你可以保留ASP语句,而使用不同的模板来建立不同的页面风格。

  

这样,你就不用为每种不同风格的网页分别来写不同的ASP页面了,这显然可以为我们节省很多时间和精力。而且,模板文件能够让你更容易的浏览页面代码,不用担心ASP和HTML的混杂搞的你头昏脑胀。你可以只用把注意力集中在HTML上,而完全不用去管ASP了。再有就是,摸板很简单,你绝对很快就能搞懂搞定。在这篇文章中,将会用到一个数据库——一个用的很广泛的雇员表。包括雇员ID,姓名,照片,以及工作摘要和照片的注脚。下面是这个Access数据库的结构:

  

  

一个很简单的数据库,是吧。当然你可以按要求来扩展它,那就是你自己的事了。我假设你已了解数据库的基本操作,这样我不用在这上面花太多的笔墨,其实这儿的代码都是很简单的,只要你知道一些基本的东西,就能把它看懂。建立了数据库之后,我们可以开始建立模板文件了。这个文件是每个页面的骨架。我没有用到表格,那样有些麻烦,而我很懒,而且,也不用加入,标签,因为那是要加在ASP页面中的。所以到最后,它的样子就是这样了:

  

  

就是这样了!这就是一个简单的模板。把它存为template.tmp,在后面的ASP页面中将要引用到它。要注意的是:我们可以在模板中加入各种HTML标签,你完全可以在摸版中定义好网页的结构和样式,就像实际写一个网页一样,只是要把关键的地方标出来——注意到了那些%围着的东西了吗?那就是模板的精髓了。或许你已经注意到,那些%围着的是和数据库中的字段意义对应的。看看下面的ASP代码,是如何读入模板和数据库文件,把他们揉和在一起,然后输出我们想要的HTML页面。

  

这就是所有的代码了,很简单,不是吗?它所作的只是打开模板文件,按顺序读入每一行,然后用冲数据库中读入的实际的字段值来代替模版中那些%img%,%name%标记。而且,它还把在“Duties”字段内大段文本中的回车解释成HTML的回车 ,这样就不至于打乱整个的排版格式了。怎么样?轻松搞定吧。模板在某些应用上真的是可以发挥奇效,省时省力。

  

理论上,你还可以修改这段代码,用FileSystemObject来读写文本,这样数据就不一定要存储在数据库中了。在一些应用中,比如即时的新闻发布,这样也许更为方便一些。

  

以上就是ASP动态网页制作技术的详细介绍,希望对大家的学习有所帮助。

继续阅读

新手入门:ps快速蒙版抠图方法介绍

  新手入门:ps快速蒙版抠图方法介绍
  ps抠图的方法有很多种,有的用魔棒抠图,有的用套索抠图,有的用通道抠图,今天小编为大家介绍利用快速蒙版抠图,方法很简单,一起来学习吧
  
  
  
  
  
  

今天在这里介绍一种简单实用、且较为精确的抠图方法,即使用快速蒙版,对于不会的朋友可以参考本文;

  

1、打开PS, 然后打开照片;

  

  

2、进入快速蒙版,或者按快捷键q。

  

  

3、选择画笔工具,或快捷键B

  

  

4、使用画笔工具对想要截取的图像进行涂抹,画笔大小用键盘上"["、"]"调节;

  

多出的部分可以用橡皮擦工具进行擦拭。

  

  

5、选取完后退出快速蒙版,或者使用快捷键q

  

  

6、然后反选,或是按快捷键Shift+Ctrl+I

  

  

7、按Crtl+J,复制选区

  

  

8、隐藏背景图,这样我们就得到了我们想要的图像了。

  

  

以上就是ps快速蒙版抠图方法介绍方法介绍,操作很简单的,大家学会了吗?希望能对大家有所帮助!
  注:本篇文章系钱柜777娱乐官网依照真实经历原创,转载请注明出处!

继续阅读

JSP自定义标签基础知识学习

  这篇文章主要为大家详细介绍了JSP自定义标签基础知识,如何实现自定义标签,请参考本文进行学习
  
  
  

在实际的开发中,如为了简化JSP中出现大量的JSP脚本,那么我们需要使用标准标签库和EL表达式,但是和新标签库中提供的标签是有限的,不可能完全满足开发的需要。如:分页。因此需要学习如何自定义自己的标签库。

  

  

如果要实现自定义标签,那么需要如下几步:

  

编写标签处理类
  需要继承或者实现相关的类或者接口

  

编写标签描述文件
  该文件是一个XML文件,而且必须放在网站的WEB-INF目录中

  

在JSP中引入标签且使用
  使用taglib指令引入标签库,随后使用。

  

自定标签的类体系

  

详细了解下一下几个类和接口:

  

—| JspTag接口

  

该接口是一个典型的标记接口。主要标记实现该接口的类可以处理标签。Seralizable

  

—-| Tag接口

  

该接口主要描述的是标签处理类的共性,但是实现该接口的类不能处理标签体,该接口中定义了标签处理类和JSP页面之间的通信协议。而且提供生命周期方法如:在标签开始和接结束的时候自动执行的方法。

  

——| TagSupport类

  

主要负责处理标签的属性。

  

——-| BodyTagSupport类

  

该类主要的是处理标签的标签体。

  

  

  体验

  

1. 处理类

  
  

  public class HelloHanler implements Tag {
  private PageContext pageContext = null;
  // 标签结束的时候执行
  public int doEndTag() throws JspException {
  return 0;
  }
  // 标签开始的时候执行
  public int doStartTag() throws JspException {
  // 给页面输出一个hello信息
  JspWriter out = pageContext.getOut();
  // 输出信息
  String info = "hello custom tag";
  try {
  out.write(info);
  } catch (IOException e) {
  e.printStackTrace();
  }
  return 0;
  }
  // 获取其父标签
  public Tag getParent() {
  return null;
  }
  // 释放
  public void release() {
  
  }
  // 设置jsp上下文对象
  public void setPageContext(PageContext pc) {
  this.pageContext = pc;
  }
  // 设置父标签
  public void setParent(Tag t) {
  
  }
  }
  
  

  
  

2. 描述文件

  
  

  <?xml version="1.0" encoding="UTF-8"?>
  <taglib
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
  version="2.1">
  <!-- 2. 编写标签库描述文件 -->
  <tlib-version>1.0</tlib-version>
  <short-name>jnb</short-name>
  <tag>
  <name>hello</name>
  <tag-class>cn.itcast.test.HelloHanler</tag-class>
  <body-content>empty</body-content>
  </tag>
  </taglib>
  
  

  
  

3. 引入

  
  

  <%@taglib uri="/WEB-INF/test.tld" prefix="jnb"%>
  <br/>
  <jnb:hello/>
  

  
  

JSP1.2进行自定义标签开发

  

自定义一个现实日期的标签。

  

1. 实现可以处理标签属性的标签处理类
  

  
  

  public class ShowDate extends TagSupport {
  // 为了便于获取属性,那么直接在处理类中定义和属性同名的属性变量即可且提供get和set方法
  private String pattern;
  public String getPattern() {
  return pattern;
  }
  public void setPattern(String pattern) {
  this.pattern = pattern;
  }
  
  // 标签开始的时候自动执行
  public int doStartTag() throws JspException {
  // 创建日期对象
  Date date = new Date();
  // 创建格式化对象
  SimpleDateFormat format = new SimpleDateFormat(getPattern());
  // 格式化
  String str = format.format(date);
  // 获取JSP上下文对象
  PageContext pageContext = this.pageContext;
  // 获取JSP的OUT输出流
  JspWriter out = pageContext.getOut();
  // 输出
  try {
  out.write(str);
  } catch (IOException e) {
  e.printStackTrace();
  }
  return super.doStartTag();
  }
  }
  
  

  
  

2. 描述文件
  

  
  

  <taglib        标签库描述文件的根元素
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
  version="2.1">
  <!-- 2. 编写标签库描述文件 -->
  <tlib-version>1.0</tlib-version>     指定标签库的版本(必须)
  <short-name>jnb</short-name>       指定标签库的简称(必须)
  <tag>                    指定一个标签开始
  <name>showdate</name>           标签名
  <tag-class>cn.itcast.custom.ShowDate</tag-class>   指定标签处理类
  <body-content>empty</body-content>   指定标签体,JSP(有)empty(没有)
  <attribute>               描述属性
  <name>pattern</name>         属性名
  <required>true</required>     属性的说明信息
  <rtexprvalue>true</rtexprvalue>   属性值的说明信息
  </attribute>
  </tag>
  </taglib>
  

  
  

3.  引入和使用

  
  

  <%@taglib uri="/WEB-INF/date.tld" prefix="date"%>
  <date:showdate pattern="yyyy年MM月dd日 a E"/>
  

  
  

实现带标签体的自定义标签

  

1. 标签处理类
  

  
  

  public class ShowDateByBody extends BodyTagSupport {
  // 为了便于获取属性,那么直接在处理类中定义和属性同名的属性变量即可且提供get和set方法
  private String pattern;
  public String getPattern() {
  return pattern;
  }
  public void setPattern(String pattern) {
  this.pattern = pattern;
  }
  
  // 标签开始的时候自动执行
  public int doStartTag() throws JspException {
  // 创建日期对象
  Date date = new Date();
  // 创建格式化对象
  SimpleDateFormat format = new SimpleDateFormat(getPattern());
  // 格式化
  String str = format.format(date);
  // 获取JSP上下文对象
  PageContext pageContext = this.pageContext;
  // 获取JSP的OUT输出流
  JspWriter out = pageContext.getOut();
  // 获取标签提的内容
  BodyContent body = this.getBodyContent();
  String tag_body = body.getString();
  str = "<font color='red'>"+tag_body+"</font>"+str;
  // 输出
  try {
  out.write(str);
  } catch (IOException e) {
  e.printStackTrace();
  }
  return super.doStartTag();
  }
  }
  
  

  
  

2. 描述文件
  

  
  

  <tag>
  <name>showdate2</name>
  <tag-class>cn.itcast.custom.ShowDateByBody</tag-class>
  <body-content>JSP</body-content>
  <attribute>
  <name>pattern</name>
  <required>true</required>
  <rtexprvalue>true</rtexprvalue>
  </attribute>
  </tag>
  

  
  

3. 引入和使用

  

<date:showdate2 pattern=”yyyy-MM-dd”>系统时间:</date:showdate2>

  

以上就是本文的全部内容,希望对大家的学习有所帮助。

继续阅读

PS怎么自定义图案?ps自定义图案介绍

  好多朋友都在想,为什么他们的背景图案那么漂亮,为什么我的ps里面没有这个自定义图案,那么现在你不用羡慕他们了,下面小编就为大家介绍PS怎么自定义图案方法,一起来看看吧
  
  
  
  
  
  PS怎么自定义图案?很多刚入门的同学都不是很清楚,下面小编就为大家详细介绍ps自定义图案方法,一起来看看吧!
  

步骤

  

打开我们电脑里面的PS软件

  

  

然后我们打开我们电脑里面的文件,我这是红叶透明的素材

  

  

点击编辑下边的定义图案

  

  

可以选择设置一个名字,方便我们查看

  

  

然后我们在新建一个文件

  

  

点击编辑,找到下边填充

  

  

就出现我们填充的东西

  

  

以上就是PS怎么自定义图案方法介绍,操作很简单的,大家学会了吗?希望这篇文章能对大家有所帮助!

继续阅读

有一种逛街叫拍照 教你如何拍出创意的街拍

  有一种逛街叫拍照 教你如何拍出创意的街拍
  每个女生都喜欢逛街,但逛街不一定就是shopping,还有很多事情可以做,比如拍照,下面小编就为大家介绍如何拍出创意的街拍,有兴趣的朋友可以参考本文,来看看吧
  
  
  
  
  
  

平常两个人一道逛街的机会有很多,情侣、闺蜜、朋友、同事、同学、家人…大家也都习惯了逛街就是shopping、美食,或者用我们本地话叫逛逛趟子。今天我想说的是,在手机拍照功能日益强大的今天,有一种逛街叫拍照!(区别于自拍啊~)从我们的身边开始,不要等到旅行的时候再背个相机记录风景,其实我们常逛的街上何尝不是美景多多

  

  

  

步骤

  

每个主街道都有它的特色,尤其夜晚灯火璀璨,我们首先可以来一个大场景的人物合照,尽量选择有线条延伸感的做背景,这样也不会显得背景太杂乱。其次就是边逛边注意四周有没有人不多的又很有特色的场景,靠近点取景,人物的眼睛不一定要看向镜头,动作越自然越好,因为都是熟悉人相信会更放的开去表现。

  

  

  

  

因为是逛嘛,就是休闲放松,所以遇到奶茶铺来上一杯喜爱的饮料是十分应景的~ 如果逛累了还可以去商场或电影院的休息区去坐一会、看会书

  

  

  

  

  

注意事项

  

有禁拍标志的地方我们不拍~不影响商家的正常营业

  

不为了拍照在那高喊“后面的人让一让”,不在安静的场所大声喧哗、嬉闹

  

以上就是如何拍出创意的街拍,希望这篇文章能给大家带来一定的帮助!

继续阅读