ดาวน์โหลดซอร์สโค้ดตัวอย่างสำหรับบทความนี้
ก่อนที่จะอ่านบทความนี้ ควรติดต่อกับ
GDI+
ต่อไปนี้ก่อน
สร้างส่วนประกอบโดยใช้ ATL
เอสทีแอล
ส่วนประกอบการใช้งาน ASP
aspImage เป็นส่วนประกอบที่ดีมากในไซต์ ServerObjects ช่วยให้เราใช้ฟังก์ชันการประมวลผลกราฟิกจำนวนมากได้ เรามาพูดถึงวิธีใช้ส่วนประกอบนี้กัน สิ่งที่เราจะพูดถึงคือวิธีใช้งานส่วนประกอบประเภทนี้ แน่นอนว่าการใช้ GDI+ ในตัวอย่างต่อไปนี้ไม่ใช่วิธีเดียวที่จะใช้การประมวลผลกราฟิกส่วนประกอบได้ วิธีการอื่น ๆ ด้วยตัวคุณเอง
ต่อไปนี้เป็นกระบวนการนำไปใช้
ขั้นแรก ใช้ตัวช่วยสร้าง Visual C++ เพื่อสร้างโครงการ ATL
2. จากนั้นเพิ่มคลาสอินเทอร์เฟซคอมโพเนนต์ ATL Active Server Page
3. สร้างคลาสชื่อ AspPicCom และเลือกการตอบสนองวัตถุภายใน ASP
4. เพิ่มคุณสมบัติและวิธีการลงในอินเทอร์เฟซ IAspPicCom ดังที่แสดงในตารางต่อไปนี้:
หมวดหมู่ | ชื่อ | หมายถึง | วิธีการโทร | |
คุณลักษณะ FontName | ชื่อ | แบบ | อักษรประเภทสตริง วิธีใช้ .FontName="宋体" | |
คุณสมบัติ | FontSize | ขนาดตัวอักษร | จำนวนเต็ม วิธีใช้ .FontSize=40 | |
การจัดรูป | แบบแบบอักษร | ของคุณสมบัติ | FontStyle | ปกติ = 0, ตัวหนา = 1, ตัวเอียง = 2, ตัวหนาเอียง = 3, ขีดเส้นใต้ = 4, ขีดฆ่า = 8 วิธีใช้ .FontStyle=8 |
ประเภทสตริง | รูปแบบกราฟิก | คุณสมบัติ | ImgFormat | รูปภาพ/gif รูปภาพ/jpeg รูปภาพ/bmp - วิธีใช้ .ImgFormat="image/gif" |
เมธอด | SetFontColor | กำหนดสีฟอนต์ | และวิธีการใช้งาน .SetFontColor 255,3,242,4 ตัวเลขด้านบนแสดงถึงอัลฟ่า แดง เขียว และน้ำเงินตามลำดับ | |
วิธีใช้ | เมธอด | SetBackColor | เพื่อตั้งค่าสีพื้นหลังของฟอนต์ | .SetBackColor 255,3,242,4 ตัวเลขด้านบนแสดงถึงอัลฟ่า แดง เขียว และน้ำเงิน |
วิธี | ShowPic | จะส่งรูปภาพไปยังไคลเอน | ต์ .ShowPic |
#รวม <Gdiplus.h> ใช้เนมสเปซ Gdiplus
และจำเป็นต้องเชื่อมต่อกับไลบรารี GDIPlus.lib
#pragma comment(lib, "gdiplus.lib")
2. ประกาศ ULONG_PTR gdiplusToken เป็นตัวแปรสมาชิกส่วนกลางหรือภายในของคลาส
3. เพิ่มฟังก์ชัน FinalConstruct ของคลาสการใช้งาน:
GdiplusStartupInput gdiplusStartupInput; //เริ่มต้น GDI+ GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);4. เพิ่ม:
GdiplusShutdown(gdiplusToken);
เพื่อให้คุณสามารถใช้ฟังก์ชันการประมวลผลกราฟิกที่ได้รับจาก GDI+
ในฟังก์ชัน FinalRelease
หมายเหตุ: สำหรับการใช้งาน GDI+ คุณสามารถดูข้อมูลอ้างอิงได้ที่ URL ต่อไปนี้:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/gdi+/gdi+.asp
http ://www .codeproject.com/vcpp/gdiplus/
6 ขั้นตอนต่อไปคือการใช้คุณสมบัติและวิธีการที่ระบุไว้ใน 4 โค้ดสำหรับวิธี ShowPic แสดงอยู่ด้านล่าง สำหรับโค้ดอื่นๆ โปรดดูซอร์สโค้ด
บิตแมป บิตแมป(1,1,PixelFormat48bppRGB); กราฟิกกราฟิก(&บิตแมป); USES_CONVERSION; แบบอักษรแบบอักษร ( OLE2CW(m_bstrFontName),(float)m_fFontSize,m_nFontStyle,
หน่วยจุด,โมฆะ); ต้นกำเนิด PointF(0, 0); รูปแบบ StringFormat; รูปแบบ SetAlignment (StringAlignmentCenter); RectF boundRect; กราฟิกMeasureString(OLE2CW(m_bstrText),m_bstrText.Length (),
&แบบอักษร, ต้นกำเนิด, &รูปแบบ, &boundRect); int nWidth = (int) boundRect.Width; int nHeight = (int) boundRect.Height; บิตแมป bm(nWidth,nHeight,PixelFormat48bppRGB); กราฟิก* g=กราฟิก::FromImage (&bm); boundRect.Width=boundRect.Width*2; SolidBrush ของแข็งแปรง (m_cBackground); g->FillRectangle(&solidbrush,boundRect); SolidBrush SolidFont(m_cFontColor); จุดF fจุด(0,0); g->DrawString(OLE2CW(m_bstrText),m_bstrText.Length (),
&แบบอักษร,fPoint,&SolidFont); ผลลัพธ์ภายใน; CLSID pngClsid; ผลลัพธ์ = GetCodecClsid(OLE2W(m_btrImgFormat ), &pngClsid); HRESULT ชม.; HGLOBAL hGlobal = GlobalAlloc (GMEM_MOVEABLE, 0); CComPtr<IStream> pStm; ถ้า (FAILED(hr = CreateStreamOnHGlobal(hGlobal, TRUE, &pStm) )) ส่งคืน hr; bm.บันทึก(pStm,&pngClsid,NULL); ULONG cElements = (ULONG)GlobalSize(hGlobal); LPBYTE lpData = (LPBYTE)GlobalLock(hGlobal); SAFEARRAY* pArray = SafeArrayCreateVector(VT_UI1, 0, องค์ประกอบ); สำหรับ (UINT iElement = 0; iElement < cElements; iElement++) - idx ยาว = iElement; SafeArrayPutElement(pArray, &idx, ((LPBYTE)lpData) + iElement); - GlobalUnlock(hGlobal); CComVariant vBytes; vBytes.vt = VT_ARRAY | . vBytes.parray = pArray; m_piResponse->ล้าง (); m_piResponse->put_ContentType (m_btrImgFormat); m_piResponse->BinaryWrite(vBytes); m_piResponse->สิ้นสุด ();
7. เมื่อการติดตั้งส่วนประกอบเสร็จสมบูรณ์แล้ว เราจะเขียน ASP เพื่อทดสอบส่วนประกอบต่อไปนี้
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <html> <ร่างกาย> - ตั้งค่ารูปภาพ = Server.CreateObject ("AspPic.AspPicCom") picture.Text="คุณเห็นฉันไหม ฉันมาจาก www.goodassister.com!" picture.FontName="เฮลด์" รูปภาพ.ขนาดตัวอักษร= 40 picture.ImgFormat = "รูปภาพ/jpeg" รูปภาพ.FontStyle= 1 Picture.SetFontColor 255,3,242,4 '' หมายถึง Alpha,Red,Green,Blue Picture.SetBackColor 10,243,42,54 '' หมายถึง Alpha, Red, Green, Blue รูปภาพ.แสดงรูปภาพ ตั้งค่ารูปภาพ = ไม่มีอะไร - </ร่างกาย> </html>
หมายเหตุ: ลงทะเบียนส่วนประกอบ regsvr32 AspPic.dll ก่อนใช้งาน
เปิดเว็บเพจ ASP นี้ คุณจะเห็นภาพต่อไปนี้
ตอนนี้แนวคิดเฉพาะสำหรับการนำ aspImage ไปใช้เสร็จสิ้นแล้ว ในตอนนี้ หากคุณต้องการเอฟเฟกต์เพิ่มเติม คุณสามารถเพิ่มองค์ประกอบนี้ด้วยตนเองได้
การพูดนอกเรื่อง: ส่วนประกอบประเภทนี้มีการใช้งานที่หลากหลาย ตัวอย่างเช่น เมื่อ yahoo.com ลงทะเบียนเป็นสมาชิก กราฟิก ข้อความจะถูกแสดงเพื่อป้องกันไม่ให้คอมพิวเตอร์ลงทะเบียนโดยอัตโนมัติ เนื่องจากคอมพิวเตอร์ไม่มีประสิทธิภาพและไม่ง่ายที่จะจดจำข้อความบนรูปภาพ ฯลฯ
เพียงเท่านี้สำหรับบทความนี้ หากคุณมีความคิดเห็นหรือคิดว่าฉันทำผิด โปรดบอกฉัน
อีเมล์:[email protected]