仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 721|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计分享C#静态天生笔墨图片办理计划

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:37:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
有时也搞不懂应该学那种;主要看你以后去的那个公司是使用哪种了。就像王千祥的课上说的:企业应用现在主要就三层(其实也差不多就是MVC):表示层(主要使用html写的,很简单)、业务逻辑层(主要就是应用服务器的)。最后就是数据层(其实就是学习数据库)静态|办理人人都晓得我们假如想把网页上的笔墨做出对照炫的效果,便只能用POTOSHOP、FIREWORK等图象处置软件把笔墨做成图片来完成,由于如许才不会依附扫瞄者的字体、扫瞄器范例等。但是在我们的WEB使用中又常常是静态的笔墨,我们便不克不及用图象处置软件来处置了,只能让WEB程序静态天生,侥幸地是.NetFramework给我们供应了便当,上面我们就使用System.Drawing定名空间下的Bitmap类与Graphics类来编写一个天生笔墨图片的类,利用该类天生图片时能满意以下需求:
1、能够指定笔墨字体、巨细和色彩(注:指定的笔墨在WEB服务器上必要有该字库);
2、能够加笔墨暗影;
3、能够指定笔墨的通明度;
4、能够指定背景图片或背景色彩;
5、能够指定天生的图片巨细(宽度与高度);
6、能够指定笔墨的地位(右边距和上边距);
7、当用户设定的笔墨字号太年夜,能主动调剂笔墨巨细使之能顺应天生图片的巨细。该类完成代码以下:
1usingSystem.Drawing;
2usingSystem.Drawing.Drawing2D;
3usingSystem.Drawing.Imaging;
4
5namespaceYcweb.Controls.Utility
6{
7/**////<summary>
8///WaterMark
9///</summary>
10publicclassWatermark
11{
12privateint_width;
13privateint_height;
14privatestring_fontFamily;
15privateint_fontSize;
16privatebool_adaptable;
17privateFontStyle_fontStyle;
18privatebool_shadow;
19privatestring_backgroundImage;
20privateColor_bgColor;
21privateint_left;
22privatestring_resultImage;
23privatestring_text;
24privateint_top;
25privateint_alpha;
26privateint_red;
27privateint_green;
28privateint_blue;
29privatelong_quality;
30
31
32
33publicWatermark()
34{
35//
36//TODO:Addconstructorlogichere
37//
38_width=460;
39_height=30;
40_fontFamily="汉文行楷";
41_fontSize=20;
42_fontStyle=FontStyle.Regular;
43_adaptable=true;
44_shadow=false;
45_left=0;
46_top=0;
47_alpha=255;
48_red=0;
49_green=0;
50_blue=0;
51_backgroundImage="";
52_quality=100;
53_bgColor=Color.FromArgb(255,229,229,229);
54
55}
56
57/**////<summary>
58///字体
59///</summary>
60publicstringFontFamily
61{
62set{this._fontFamily=value;}
63}
64
65/**////<summary>
66///笔墨巨细
67///</summary>
68publicintFontSize
69{
70set{this._fontSize=value;}
71}
72
73/**////<summary>
74///笔墨作风
75///</summary>
76publicFontStyleFontStyle
77{
78get{return_fontStyle;}
79set{_fontStyle=value;}
80}
81
82/**////<summary>
83///通明度0-255,255暗示不通明
84///</summary>
85publicintAlpha
86{
87get{return_alpha;}
88set{_alpha=value;}
89}
90
91/**////<summary>
92///水印笔墨是不是利用暗影
93///</summary>
94publicboolShadow
95{
96get{return_shadow;}
97set{_shadow=value;}
98}
99
100publicintRed
101{
102get{return_red;}
103set{_red=value;}
104}
105
106publicintGreen
107{
108get{return_green;}
109set{_green=value;}
110}
111
112publicintBlue
113{
114get{return_blue;}
115set{_blue=value;}
116}
117
118/**////<summary>
119///底图
120///</summary>
121publicstringBackgroundImage
122{
123set{this._backgroundImage=value;}
124}
125
126/**////<summary>
127///水印笔墨的右边距
128///</summary>
129publicintLeft
130{
131set{this._left=value;}
132}
133
134
135/**////<summary>
136///水印笔墨的顶边距
137///</summary>
138publicintTop
139{
140set{this._top=value;}
141}
142
143/**////<summary>
144///天生后的图片
145///</summary>
146publicstringResultImage
147{
148set{this._resultImage=value;}
149}
150
151/**////<summary>
152///水印文本
153///</summary>
154publicstringText
155{
156set{this._text=value;}
157}
158
159
160/**////<summary>
161///天生图片的宽度
162///</summary>
163publicintWidth
164{
165get{return_width;}
166set{_width=value;}
167}
168
169/**////<summary>
170///天生图片的高度
171///</summary>
172publicintHeight
173{
174get{return_height;}
175set{_height=value;}
176}
177
178/**////<summary>
179///若笔墨太年夜,是不是依据背景图来调剂笔墨巨细,默许为顺应
180///</summary>
181publicboolAdaptable
182{
183get{return_adaptable;}
184set{_adaptable=value;}
185}
186
187publicColorBgColor
188{
189get{return_bgColor;}
190set{_bgColor=value;}
191}
192
193/**////<summary>
194///输入图片质量,质量局限0-100,范例为long
195///</summary>
196publiclongQuality
197{
198get{return_quality;}
199set{_quality=value;}
200}
201
202/**////<summary>
203///当即天生水印最终效果
204///</summary>
205///<returns>天生乐成前往true,不然前往false</returns>
206publicboolCreate()
207{
208try
209{
210Bitmapbitmap;
211Graphicsg;
212
213//利用纯背景致
214if(this._backgroundImage.Trim()=="")
215{
216bitmap=newBitmap(this._width,this._height,PixelFormat.Format64bppArgb);
217g=Graphics.FromImage(bitmap);
218g.Clear(this._bgColor);
219}
220else
221{
222bitmap=newBitmap(Image.FromFile(this._backgroundImage));
223g=Graphics.FromImage(bitmap);
224}
225g.SmoothingMode=SmoothingMode.HighQuality;
226g.InterpolationMode=InterpolationMode.HighQualityBicubic;
227g.CompositingQuality=CompositingQuality.HighQuality;
228
229Fontf=newFont(_fontFamily,_fontSize,_fontStyle);
230SizeFsize=g.MeasureString(_text,f);
231
232//调剂笔墨巨细直到能顺应图片尺寸
233while(_adaptable==true&&size.Width>bitmap.Width)
234{
235_fontSize--;
236f=newFont(_fontFamily,_fontSize,_fontStyle);
237size=g.MeasureString(_text,f);
238}
239
240Brushb=newSolidBrush(Color.FromArgb(_alpha,_red,_green,_blue));
241StringFormatStrFormat=newStringFormat();
242StrFormat.Alignment=StringAlignment.Near;
243
244if(this._shadow)
245{
246Brushb2=newSolidBrush(Color.FromArgb(90,0,0,0));
247g.DrawString(_text,f,b2,_left+2,_top+1);
248}
249g.DrawString(_text,f,b,newPointF(_left,_top),StrFormat);
250
251bitmap.Save(this._resultImage,ImageFormat.Jpeg);
252bitmap.Dispose();
253g.Dispose();
254returntrue;
255}
256catch
257{
258returnfalse;
259}
260}
261}
262
263
264}
挪用则相称复杂,在此不予赘述,特把我利用的效果抓个图,以供人人参考
对于new隐藏成员的作用,往往是出于使用了一个第三方类库,而你又无法获得这个类库的源代码,当你继承这个类库的某个类时,你需要重新实现其中的一个方法,而又需要与父类中的函数使用同样的函数,这是就需要在自定义的子类中把那个同名函数(或成员)加上new标记,从而隐藏父类中同名的成员。
不帅 该用户已被删除
沙发
发表于 2015-1-18 21:52:38 | 只看该作者
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-1-23 19:37:08 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。
爱飞 该用户已被删除
地板
发表于 2015-1-31 19:39:16 | 只看该作者
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
若相依 该用户已被删除
5#
发表于 2015-2-6 21:35:06 | 只看该作者
逐步缩小出错代码段的范围,最终确定错误代码的位置。
深爱那片海 该用户已被删除
6#
发表于 2015-2-18 19:56:40 | 只看该作者
如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。
莫相离 该用户已被删除
7#
发表于 2015-3-6 10:12:20 | 只看该作者
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
简单生活 该用户已被删除
8#
发表于 2015-3-13 00:06:12 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
若天明 该用户已被删除
9#
发表于 2015-3-20 06:10:39 | 只看该作者
对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-29 21:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表