下载本文示例源代码
在阅读这篇文章之前,最好能够接触过以下几项 GDI+ 利用ATL生成组件 STL ASP使用组件 aspImage是ServerObjects站点上非常好的一个组件,它可以使我们利用Asp实现很多对于图形的处理功能,他的功能强大,如果你需要了解更详细的信息你可以访问它的官方网站,在这里就不讲如何使用这个组件了,我们在这里要讲的是如何实现这类组件,当然下面的例子中使用GDI+并不是实现组件图形处理的唯一方法,大家也可以自己试试其他的方法. 以下是实现过程 一、首先使用Visual C++的向导建立ATL项目
二、接下来添加一个ATL Active Server Page 组件接口类
三、生成名称为AspPicCom的类并且选择ASP内部对象Response
四、在IAspPicCom接口上添加属性和方法,如下表 名称 | 类别 | 含义 | 调用方法 | FontName | 属性 | 字体名称 | 字符串类型
使用方法 .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> |
相关推荐
ASP JPEG组件是一款专门为IIS(Internet Information Services)设计的服务器端图像处理工具,它允许开发者在ASP(Active Server Pages)环境中处理JPEG格式的图片。这款组件通常包含多种图像操作功能,如图片的读取...
AspJpeg是一个ASP组件,专门用于处理JPEG图像文件。它提供了从HTTP请求中读取图像、从磁盘加载、保存到磁盘、在内存中操作以及直接发送到浏览器的能力。开发者可以利用这个组件进行图片的上传、缩放、裁剪、旋转等...
ASP组件在Web开发领域扮演着重要的角色,尤其对于那些使用Active Server Pages (ASP) 技术构建动态网站的开发者来说。这些组件极大地扩展了ASP的功能,使得开发者可以轻松实现复杂的功能,比如图像处理、邮件发送、...
ASP图片组件是Web开发中的一种重要工具,尤其在构建动态网站时,对于图像处理功能的需求不可或缺。本组件,名为ASPJPEG,是专为ASP(Active Server Pages)平台设计的,用于处理和操作图像的高效解决方案。它允许...
6. 多语言支持:考虑到WFImage支持多种编程语言,这意味着无论你使用ASP、.NET、VB还是Delphi,都可以无缝集成这个组件,快速实现图像处理功能。 7. 性能优化:为了满足高性能应用的需求,WFImage在设计时考虑了...
ASPJPEG是一个经典的ASP图像处理组件,虽然在标题中提到,但在提供的文件列表中并没有看到这个组件本身。通常,ASPJPEG用于在服务器端生成JPEG图片,调整尺寸,添加水印等。在没有提供组件的情况下,可能是在ASP...
生成缩略图的ASP程序通常会使用图像处理库,如GDI+,来读取原始图像,调整大小并保存为新的缩略图文件。 在ASP中实现这个功能,开发者需要了解以下几个关键知识点: 1. **文件上传处理**:ASP通过Request对象的...
使用ASPPDF组件,开发者可以实现以下关键功能: 1. **生成PDF**:从HTML、XML、RTF、Text或图像等源数据生成PDF文件,使得网页内容可以被保存为便于分发和打印的格式。 2. **编辑PDF**:添加、删除、移动或修改PDF...
总结来说,这个Delphi编写的ASP图像组件是一个强大的服务器端图像处理工具,它通过ActiveX技术使ASP页面能够执行丰富的图像操作。开发人员可以利用这个组件轻松地在网页上实现图像管理功能,提高网站的互动性和功能...
4. AspJpeg组件:AspJpeg是一个常用的ASP图像处理库,用于读取、写入、修改和显示JPEG图像。在ASP上传加水印组件中,AspJpeg可能被用作底层技术,提供图像处理的能力。 5. 安全性:组件通常会包含一些安全机制,...
在使用aspPDF组件时,开发者需要按照官方文档或示例代码进行配置和调用。例如,可以使用以下代码创建一个新的PDF文档: ```vbnet Dim pdf As New aspPDF() pdf.CreateDoc() pdf.AddPage() pdf.TextOut(50, 50, ...
ASP先锋无组件上传类是一个专为ASP(Active Server Pages)平台设计的安全上传组件,它强调了安全性,无需使用FileSystemObject(FSO)组件,从而避免了因FSO引发的潜在安全问题。在ASP环境中,FSO允许程序对服务器...
【ASP PDF组件与PDF生成技术】 在Web开发中,生成PDF文档是一项常见的需求,用于提供打印友好版本或者方便用户下载的格式。ASP(Active Server Pages)是微软开发的一种服务器端脚本环境,常用于构建动态网页。而...
ASPJPEG2是一款在ASP环境下用于图像处理的组件,它提供了丰富的功能,使开发者能够在服务器端进行图像的操作,如创建、读取、修改和保存图片。这个组件特别适用于那些需要动态生成或编辑图像的Web应用程序,比如网站...
"条形码生成函数.asp" 这个文件很可能是该组件的核心代码,包含了一个或多个函数,这些函数接收特定参数,如条形码类型(如EAN-13、UPC-A等)、数据值,然后返回一个HTML字符串或图像数据,可以在网页上显示生成的...
**wfTextImage文字图像组件 v1.5**是一款专门用于将文本内容转化为GIF动态图的工具,旨在防止文本被轻易复制和抄袭,为在线发布的内容提供了一种有效的版权保护手段。这一组件特别适用于那些希望保护其知识产权的...
这个"soft_用ASP判断图像长宽的组件.zip.zip"文件似乎包含了一个特定的ASP组件,该组件允许开发者在服务器端检查图像文件的尺寸,即宽度和高度。这种功能在很多应用场景中都是必要的,例如在上传图片时进行预处理,...
ASP图像上传控件是.NET开发中的一个重要组成部分,它允许用户在网页上上传图片,并提供了丰富的功能,如图像预览、剪切、缩放等。在ASP.NET环境中,这样的控件通常是一个服务器端组件,用于接收客户端(通常是浏览器...
1. 图片生成:通常会使用GDI+(Graphics Device Interface Plus)库来创建图像,包括设置画布大小、颜色、字体等,然后将字符绘制到图像上。 2. 随机性和复杂性:为了防止被轻易破解,图片中的字符可能会随机生成,...