이 기사의 샘플 소스 코드 다운로드
이 기사를 읽기 전에 다음
GDI+
에 문의하는 것이 가장 좋습니다.
ATL을 사용하여 구성 요소 생성
STL
ASP 사용 구성 요소
aspImage는 ServerObjects 사이트의 매우 유용한 구성 요소입니다. 이를 통해 Asp를 사용하여 많은 그래픽 처리 기능을 구현할 수 있습니다. 더 자세한 정보가 필요한 경우 공식 웹 사이트를 방문하세요. 여기서 이야기할 내용은 이러한 유형의 컴포넌트를 구현하는 방법입니다. 물론 다음 예제에서 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 위의 숫자는 각각 Alpha, Red, Green 및 Blue를 나타냅니다. |
SetBackColor | 메서드를 | 사용하여글꼴 배경색을 설정하는 | 방법입니다 | ..SetBackColor 255,3,242,4 위의 숫자는 Alpha, Red, Green 및 Blue를 나타냅니다. |
ShowPic | 메서드는 | 그림을 클라이언트로 보냅니다 | . .ShowPic |
#include <Gdiplus.h> 네임스페이스 Gdiplus를 사용하고GDIPlus.lib 라이브러리
#pragma comment(lib, "gdiplus.lib")
에 연결해야 합니다
.2. ULONG_PTR gdiplusToken을 클래스의 전역 또는 내부 멤버 변수로 선언합니다.
3. 구현 클래스의 FinalConstruct 함수에 다음을 추가합니다:
GdiplusStartupInput gdiplusStartupInput; //GDI+ 초기화 GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);4.
FinalRelease 함수에서
GDI+가 제공하는 그래픽 처리 기능을 사용할 수 있도록
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 메서드에 대한 코드는 아래에 나열되어 있으며 다른 코드는
비트맵소스 코드를 참조하세요.
비트맵(1,1,PixelFormat48bppRGB); 그래픽 그래픽(&비트맵); USES_CONVERSION; 글꼴 글꼴( OLE2CW(m_bstrFontName),(float)m_fFontSize,m_nFontStyle,
단위점,NULL); PointF 원점(0, 0); StringFormat 형식; format.SetAlignment(StringAlignmentCenter); RectFboundRect; 그래픽.MeasureString(OLE2CW(m_bstrText),m_bstrText.Length (),
&font, 출처, &format, &boundRect); int nWidth = (int)boundRect.Width; int nHeight = (int)boundRect.Height; 비트맵 bm(nWidth,nHeight,PixelFormat48bppRGB); 그래픽* g=그래픽::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); 정수 결과; CLSID pngClsid; 결과 = 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); for (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. 이제 구성 요소 구현이 완료되었으므로 다음 구성 요소
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>를 테스트하기 위해 ASP를 작성합니다.
<html> <본문> <% Picture=Server.CreateObject("AspPic.AspPicCom")를 설정합니다. picture.Text="저 좀 보이나요? 저는 www.goodassister.com에서 왔어요!" picture.FontName="보존" 그림.글꼴 크기= 40 picture.ImgFormat = "이미지/jpeg" picture.FontStyle= 1 Picture.SetFontColor 255,3,242,4 ''는 Alpha,Red,Green,Blue를 나타냅니다. Picture.SetBackColor 10,243,42,54 ''는 Alpha, Red, Green, Blue를 나타냅니다. Picture.ShowPic 그림=아무것도 설정하지 않음 %> </body> </html>
참고: 사용하기 전에 regsvr32 AspPic.dll 구성 요소를 등록하세요.
이 ASP 웹 페이지를 열면 다음 그림이 표시됩니다.
이제 aspImage 구현을 위한 구체적인 아이디어가 완성되었습니다. 이제 더 많은 효과가 필요하면 이 구성 요소를 직접 강화할 수 있습니다.
여담: 이 유형의 구성 요소는 예를 들어 yahoo.com이 회원으로 등록하면 그래픽으로 사용됩니다. 컴퓨터가 그림의 텍스트를 인식하는 것은 비효율적이고 쉽지 않기 때문에 컴퓨터가 자동으로 등록하는 것을 방지하기 위해 단어가 표시됩니다. 이러한 유형의 구성 요소는 히스토그램, 파이 차트, 파형 차트와 같은 차트 생성에 더 많이 적용됩니다. 등.
이 글은 여기까지입니다. 의견이 있거나 제가 실수했다고 생각하시면 알려주시기 바랍니다.
이메일:[email protected]