قم بتنزيل نموذج التعليمات البرمجية المصدر لهذه المقالة
قبل قراءة هذه المقالة، من الأفضل أن تتصل بـ
GDI+
التالي
إنشاء المكونات باستخدام ATL
المحكمة الخاصة بلبنان
مكونات استخدام ASP
يعد aspImage مكونًا جيدًا جدًا على موقع ServerObjects، فهو يسمح لنا باستخدام Asp لتنفيذ العديد من وظائف معالجة الرسومات. دعونا نتحدث عن كيفية استخدام هذا المكون، ما سنتحدث عنه هنا هو كيفية تنفيذ هذا النوع من المكونات. بالطبع، استخدام GDI+ في المثال التالي ليس هو الطريقة الوحيدة لتنفيذ معالجة رسومات المكونات طرق أخرى بنفسك.
ما يلي هو عملية التنفيذ
أولاً، استخدم معالج Visual C++ لإنشاء مشروع ATL.
2. قم بعد ذلك بإضافة فئة واجهة مكون ATL Active Server Page
3. قم بإنشاء فئة باسم AspPicCom وحدد استجابة كائن ASP الداخلي
4. أضف الخصائص والأساليب إلى واجهة IAspPicCom، كما هو موضح في الجدول التالي:
فئة | الاسم | ،معنى | طريقة الاتصال | |
، اسم الخط، | اسم | الخط | ، نوع السلسلة كيفية الاستخدام .FontName = "宋体" | |
حجم الخط | الخاصية | FontSize | هو عدد صحيح كيفية الاستخدام .FontSize=40 | |
خاصية | FontStyle | لتشكيل | نوع الخط | منتظم = 0، غامق = 1، مائل = 2، غامق مائل = 3، تسطير = 4، الضربة = 8 كيفية الاستخدام .FontStyle=8 |
نوع سلسلة | تنسيق رسم | الخاصية | ImgFormat | صورة / جيف صورة/JPEG صورة/bmp ... كيفية الاستخدام .ImgFormat="image/gif" |
طريقة | SetFontColor | تحدد لون الخط | وكيفية استخدامه .سيتفونتكولور 255,3,242,4 تمثل الأرقام أعلاه Alpha وRed وGreen وBlue على التوالي. | |
كيفية استخدام | أسلوب | 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+، يمكنك العثور على مرجع على عنوان 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 مدرج أدناه للحصول على رموز أخرى، يرجى عرض
الصورة النقطيةللتعليمات البرمجية المصدر
bitmap(1,1,PixelFormat48bppRGB); الرسومات الرسومية (& الصورة النقطية) ؛ USES_CONVERSION; خط الخط (OLE2CW(m_bstrFontName)،(عائم)m_fFontSize،m_nFontStyle،
UnitPoint،NULL); أصل PointF(0, 0); تنسيق سلسلة؛ format.SetAlignment(StringAlignmentCenter); RectFboundRect; graphics.MeasureString(OLE2CW(m_bstrText)،m_bstrText.Length ()،
&font, Origin, &format, &boundRect); int nWidth = (int)boundRect.Width; int nHeight = (int)boundRect.Height; الصورة النقطية 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); ز->DrawString(OLE2CW(m_bstrText)،m_bstrText.Length ()،
&font,fPoint,&SolidFont); نتيجة كثافة العمليات؛ CLSID pngClsid; result = GetCodecClsid(OLE2W(m_btrImgFormat ), &pngClsid); HRESULT ساعة؛ 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); لـ (UINT iElement = 0؛ iElement < cElements؛ iElement++) { long 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->End ();
7. الآن بعد أن اكتمل تنفيذ المكون، نكتب ASP لاختبار المكون التالي
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <أتش تي أم أل> <الجسم> <% تعيين Picture=Server.CreateObject("AspPic.AspPicCom") Picture.Text="هل تستطيع رؤيتي؟ أنا من www.goodassister.com!" الصورة.FontName = "هولد" حجم الصورة = 40 الصورة.ImgFormat = "صورة/JPEG" الصورة.نمط الخط = 1 Picture.SetFontColor 255,3,242,4 '' يمثل ألفا والأحمر والأخضر والأزرق Picture.SetBackColor 10,243,42,54 '' يمثل ألفا، أحمر، أخضر، أزرق صورة.ShowPic تعيين الصورة = لا شيء %> </الجسم> </html>
ملاحظة: قم بتسجيل المكون regsvr32 AspPic.dll قبل الاستخدام
افتح صفحة ويب ASP هذه، وسترى الصورة التالية
الآن تم الانتهاء من الأفكار المحددة لتنفيذ aspImage. الآن، إذا كنت بحاجة إلى المزيد من التأثيرات، يمكنك إثراء هذا المكون بنفسك
: هذا النوع من المكونات له نطاق واسع من الاستخدامات، على سبيل المثال، عندما يقوم موقع yahoo.com بالتسجيل كعضو سيتم عرض الكلمات لمنع الكمبيوتر من التسجيل تلقائيًا، لأنه ليس من السهل على أجهزة الكمبيوتر التعرف على النص الموجود على الصور، ويتم تطبيق هذا النوع من المكونات بشكل أكبر على إنشاء المخططات، مثل الرسوم البيانية والمخططات الدائرية والمخططات الموجية. إلخ.
هذا كل ما في الأمر بالنسبة لهذا المقال، إذا كان لديك أي تعليقات أو تعتقد أنني ارتكبت خطأً، فيرجى إخباري.
البريد الإلكتروني:[email protected]