根据客户端输入的文字生成图片,再传回给客户端的webservice

来源: 作者: 2007-11-11 出处:pcdog.com


  view-textgraphic.asmx
<%@ WebService Language="vb" Class="TextGraphic" %>  
2  
3 Imports System  
4 Imports System.Web.Services  
5 Imports System.IO  
6 Imports System.Drawing  
7 Imports System.Drawing.Imaging  
8 Imports System.Drawing.Drawing2D  
9  
10  
11 <WebService(Namespace:="http://www.ASPalliance.com/chrisg/services")> _  
12 Public Class TextGraphic  
13  
14  
15 <WebMethod> Public Function DrawText( _  
16 text as String, _  
17 fontName as String, _  
18 fontSize as Integer, _  
19 fontColor as String, _  
20 alignment as String, _  
21 backcolor as String, _  
22 width as Integer, _  
23 height as Integer _  
24 ) as Byte()  
25  
26 ' create output stream  
27 dim outStream as System.IO.MemoryStream  
28 outStream = New System.IO.MemoryStream()  
29  
30  
31 ' create a New bitmap image  
32 dim b as Bitmap = New Bitmap(width, height, pixelformat.format24bpprgb)  
33 dim g as Graphics  
34 g = Graphics.FromImage(b)  
35 dim fBrush as SolidBrush  
36 fBrush = New SolidBrush(ColorTranslator.FromHTML(fontColor))  
37  
38 dim salign as New StringFormat  
39 dim coords as pointF  
40  
41 if alignment.ToUpper = "LEFT" then  
42 salign.alignment = stringalignment.near  
43 coords = New pointF(0,0)  
44 elseif alignment.ToUpper = "RIGHT" then  
45 salign.alignment = stringalignment.far  
46 coords = New pointF(0,0)  
47 else  
48 salign.alignment = stringalignment.center  
49 coords = New pointF(width/2,0)  
50 end if  
51  
52 ' blank the bitmap  
53 g.Clear(ColorTranslator.FromHTML(backcolor))  
54  
55 ' antialias  
56 g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias  
57 g.smoothingMode = smoothingMode.antiAlias  
58  
59 g.drawString(text, New font(fontName,fontSize),fBrush,coords,salign)  
60  
61  
62 ' serve the image to the client  
63 b.Save(outStream, ImageFormat.Gif)  
64  
65 return outStream.ToArray()  
66  
67 ' clear up  
68 b.Dispose()  
69 g.Dispose()  
70  
71  
72  
73 End Function  
74  
75 End Class  
testtextgraphic.ASPx
<%@ Page Language="vb" Debug="True" %>  
2 <%@ import namespace="System.Drawing" %>  
3 <%@ import namespace="System.IO" %>  
4 <%  
5  
6 ' initialise objects  
7 dim gText as New TextGraphic  
8 dim b as Bitmap  
9 dim bytes as Byte()  
10 dim inStream as System.IO.MemoryStream  
11  
12 ' get image data  
13 bytes = gText.DrawText("test2","tahoma",36, "#0000ff", "center", "#ffffff", 100,100)  
14 inStream = New System.IO.MemoryStream(bytes)  
15  
16 ' create a New image from stream  
17 b = New Bitmap(inStream)  
18  
19 ' Set the content type  
20 response.contenttype="image/gif"  
21  
22 ' send the image to the viewer  
23 b.save(response.outputstream, b.rawformat)  
24  
25 ' tidy up  
26 b.dispose()  
27  
28 %>  

上一篇:五款主流拼音输入法王者之战
下一篇:经常看见有人问能不能实现这个效果:下拉选框中输入文字。想实现的进来看看