亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASPImage組件的實現過程

2019-11-18 19:04:28
字體:
來源:轉載
供稿:網友

下載本文示例源代碼

在閱讀這篇文章之前,最好能夠接觸過以下幾項

GDI+
利用ATL生成組件
STL
asp使用組件
aspImage是ServerObjects站點上非常好的一個組件,它可以使我們利用Asp實現很多對于圖形的處理功能,他的功能強大,如果你需要了解更詳細的信息你可以訪問它的官方網站,在這里就不講如何使用這個組件了,我們在這里要講的是如何實現這類組件,當然下面的例子中使用GDI+并不是實現組件圖形處理的唯一方法,大家也可以自己試試其他的方法.
以下是實現過程

一、首先使用Visual C++的向導建立ATL項目





二、接下來添加一個ATL Active Server Page 組件接口類



三、生成名稱為AspPicCom的類并且選擇ASP內部對象Response



四、在IAspPicCom接口上添加屬性和方法,如下表

名稱類別含義調用方法
FontName屬性
FontSize屬性字體大小整型

使用方法
.FontSize=40
FontStyle屬性字體類型整形

Regular = 0,
Bold = 1,
Italic = 2,
BoldItalic = 3,
Underline = 4,
Strikeout = 8

使用方法
.FontStyle=8
ImgFormat屬性圖形格式字符串類型

image/gif
image/jpeg
image/bmp
......

使用方法
.ImgFormat="image/gif"
SetFontColor方法設置字體顏色使用方法
.SetFontColor 255,3,242,4
上面的數字分別代表Alpha,Red,Green,Blue
SetBackColor方法設置字體背景顏色使用方法
.SetBackColor 255,3,242,4
上面的數字分別代表Alpha,Red,Green,Blue
ShowPic方法將圖片發送到客戶端使用方法
.ShowPic
五、 要在ASP組件中使用GDI+,需要加入一些代碼

1、你需要在Stdafx.h文件中加入下面兩行:

#include <Gdiplus.h> using namespace Gdiplus; 

而且需要連接GDIPlus.lib庫

#PRagma comment(lib,"gdiplus.lib")

2、聲明ULONG_PTR gdiplusToken;為一個全局或者類的內部成員變量。
3、在實現類的FinalConstruct函數中加入:

GdiplusStartupInput gdiplusStartupInput; //初始化 GDI+ GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); 

4、在FinalRelease函數中加入:

GdiplusShutdown(gdiplusToken); 

這樣你就可以使用GDI+提供的圖形處理函數了。

注:關于GDI+的使用你可以在以下網址找到參考

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/gdi+/gdi+.asp

http://www.codeproject.com/vcpp/gdiplus/

六 接下來就是實現在四中列出的這些屬性和方法,下面列出ShowPic方法的一段代碼,其他代碼請查看源代碼

Bitmap bitmap(1,1,PixelFormat48bppRGB);Graphics graphics(&bitmap);USES_CONVERSION;Font font( OLE2CW(m_bstrFontName),(float)m_fFontSize,m_nFontStyle,
UnitPoint,NULL);PointF origin(0, 0);StringFormat format;format.SetAlignment(StringAlignmentCenter);RectF boundRect; graphics.MeasureString(OLE2CW(m_bstrText),m_bstrText.Length (),
&font, origin, &format, &boundRect);int nWidth = (int)boundRect.Width;int nHeight = (int)boundRect.Height;Bitmap bm(nWidth,nHeight,PixelFormat48bppRGB);Graphics* g=Graphics::FromImage (&bm);boundRect.Width=boundRect.Width*2;SolidBrush solidbrush(m_cBackground);g->FillRectangle(&solidbrush,boundRect);SolidBrush SolidFont(m_cFontColor);PointF fPoint(0,0);g->DrawString(OLE2CW(m_bstrText),m_bstrText.Length (),
&font,fPoint,&SolidFont);int result;CLSID pngClsid;result = GetCodecClsid(OLE2W(m_btrImgFormat ), &pngClsid);HRESULT hr;HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, 0);CComPtr<IStream> pStm;if (FAILED(hr = CreateStreamOnHGlobal(hGlobal, TRUE, &pStm) )) return hr;bm.Save(pStm,&pngClsid,NULL);ULONG cElements = (ULONG)GlobalSize(hGlobal);LPBYTE lpData = (LPBYTE)GlobalLock(hGlobal);SAFEARRAY* pArray = SafeArrayCreateVector(VT_UI1, 0, cElements);for (UINT iElement = 0; iElement < cElements; iElement++){long idx = iElement;SafeArrayPutElement(pArray, &idx, ((LPBYTE)lpData) + iElement);}GlobalUnlock(hGlobal);CComVariant vBytes;vBytes.vt = VT_ARRAY | VT_UI1;vBytes.parray = pArray;m_piResponse->Clear ();m_piResponse->put_ContentType (m_btrImgFormat);m_piResponse->BinaryWrite(vBytes);m_piResponse->End ();

七、現在組件的實現部分就大功告成了,我們寫一段ASP來測試以下這個組件

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><html><body><%set Picture=Server.CreateObject("AspPic.AspPicCom") picture.Text ="你能看見我嗎?我來自www.goodassister.com!"picture.FontName="黑體"picture.FontSize= 40picture.ImgFormat = "image/jpeg"picture.FontStyle= 1Picture.SetFontColor 255,3,242,4 ''代表Alpha ,Red,Green,BluePicture.SetBackColor 10,243,42,54 ''代表Alpha ,Red,Green,BluePicture.ShowPicset Picture=nothing%></body></html>

注:在使用前先注冊組件 regsvr32 AspPic.dll



打開這個ASP網頁,你將會看到如下的圖片


現在實現aspImage的具體思路就講完了,現在如果需要更多的效果,你可以自己豐富這個組件

題外話:這類組件的用途很廣,如yahoo.com注冊會員時會顯示圖形單詞以防止計算機自動注冊,因為計算機要識別圖片上的文字是低效而且很不容易的事情,這類組件更多的是應用到圖表的生成,如柱狀圖、餡餅圖、波形圖等等。

這篇文章就寫到這里了,如果你覺得有什么意見或者我講錯了的地方,請你告訴我
Email:sillyboy@china.com


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
红桃av永久久久| 国产精品嫩草影院久久久| 亚洲精品成人av| 日韩精品中文字幕在线观看| 九九久久精品一区| 欧美一级电影久久| 亚洲国产精品久久久久秋霞不卡| 欧洲日本亚洲国产区| 国产欧美精品一区二区三区-老狼| 欧美黑人性视频| 91成人国产在线观看| 91精品国产九九九久久久亚洲| 日韩电影在线观看永久视频免费网站| 日本一区二三区好的精华液| 亚洲天堂成人在线| 国产久一一精品| 黑人与娇小精品av专区| 97视频免费在线看| 久久久亚洲天堂| 在线视频欧美日韩| 成人久久久久久| 青青草成人在线| 欧美激情一区二区三区高清视频| 亚洲精品小视频在线观看| 国产精品美女呻吟| 91久久久久久久久久| 国产精品爽黄69天堂a| 精品日韩中文字幕| 粉嫩老牛aⅴ一区二区三区| 91po在线观看91精品国产性色| 一区二区三区视频免费| 精品久久国产精品| 色妞色视频一区二区三区四区| 91精品国产91久久久久久不卡| 色哟哟网站入口亚洲精品| 国产成人91久久精品| 国产欧美精品一区二区三区介绍| 国产精品九九九| 国产成人免费av电影| 日本亚洲欧美成人| 最新国产精品拍自在线播放| 亚洲va久久久噜噜噜久久天堂| 国产精品久久久久免费a∨| 国内精品国产三级国产在线专| 亚洲欧美成人一区二区在线电影| 97在线日本国产| 热久久免费国产视频| 久久久av亚洲男天堂| 久久精品视频一| 欧美综合在线第二页| 美女av一区二区三区| 欧美一级电影久久| 亚洲精品wwww| 亚洲午夜小视频| 亚洲人成电影网站| 成人国产亚洲精品a区天堂华泰| 国产精品a久久久久久| 91精品国产免费久久久久久| 亚洲精品美女久久久久| 91精品国产91久久久久久| 高跟丝袜欧美一区| 日韩免费观看av| 久久久国产视频| 91在线免费视频| 色偷偷亚洲男人天堂| 亚洲美女视频网| 色婷婷av一区二区三区在线观看| 国产在线视频欧美| 日韩av资源在线播放| 日本在线精品视频| 国产精品入口福利| 日韩一区二区三区在线播放| 亚洲精品之草原avav久久| 精品中文视频在线| 久久久国产精品x99av| 精品国产一区久久久| 日本成人在线视频网址| 精品免费在线观看| 国产精品电影观看| 欧美高清一级大片| 久久99精品久久久久久青青91| 亚洲国内高清视频| 国产亚洲一区二区在线| 国产亚洲精品综合一区91| 色999日韩欧美国产| 国产精品美女在线| 欧美激情一区二区三区久久久| 久久久成人精品视频| 国产区精品视频| 91系列在线播放| 欧美大片va欧美在线播放| 亚洲天堂网在线观看| 久久人人97超碰精品888| 黄色一区二区三区| 国产一区二区香蕉| 自拍亚洲一区欧美另类| 亚洲欧美国产精品专区久久| 国产亚洲一区精品| 一本色道久久88精品综合| 国产精品久久久久久久久久ktv| 国产91|九色| 午夜精品久久久久久久久久久久久| 亚洲图片制服诱惑| 国产精品丝袜久久久久久高清| 最新国产精品拍自在线播放| 亚洲www在线| 精品毛片网大全| 宅男66日本亚洲欧美视频| 91精品国产综合久久香蕉最新版| 亚洲欧美日韩国产中文专区| 96精品久久久久中文字幕| 中文字幕亚洲字幕| 91精品视频免费观看| 亚洲毛茸茸少妇高潮呻吟| 高跟丝袜一区二区三区| 亚洲色图综合久久| 668精品在线视频| 欧美日韩成人在线观看| 亚洲欧美另类中文字幕| 国产欧美va欧美va香蕉在线| 欧美另类高清videos| 国产丝袜精品第一页| 日韩电影在线观看免费| 欧美激情视频在线免费观看 欧美视频免费一| 91九色精品视频| 91精品国产综合久久香蕉的用户体验| 亚洲欧美综合区自拍另类| 国产精品久久91| 欧美国产高跟鞋裸体秀xxxhd| 国产精品视频色| 国产在线日韩在线| 国产成人精品日本亚洲专区61| 亚洲xxxx妇黄裸体| 91精品久久久久久久久久另类| 欧美高清视频在线| 亚洲视频在线看| 亚洲一区二区在线| 国产成人亚洲综合青青| 欧美视频专区一二在线观看| 第一福利永久视频精品| 久久影院免费观看| 一本色道久久88综合亚洲精品ⅰ| 日韩av在线高清| 久热精品在线视频| 久久福利视频导航| 久久精品影视伊人网| 国模私拍视频一区| 最近2019中文免费高清视频观看www99| 欧美在线精品免播放器视频| 国产狼人综合免费视频| 亚洲最新av网址| 国产精品久久久久久久7电影| 日韩精品极品在线观看播放免费视频| 欧美激情视频一区| 日韩在线观看免费全| 米奇精品一区二区三区在线观看| 成人av资源在线播放| 26uuu日韩精品一区二区| 亚洲综合日韩在线| 伊人精品在线观看| 91国产在线精品| 亚洲高清久久久久久| 成人黄色免费看| 96精品视频在线|