`

ASP图象组件使用

阅读更多
ASPImage组件的实现过程
[日期:2005-12-19 0:00:00] [字体: ]

下载本文示例源代码

在阅读这篇文章之前,最好能够接触过以下几项

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组件 带CDKEY

    ASP JPEG组件是一款专门为IIS(Internet Information Services)设计的服务器端图像处理工具,它允许开发者在ASP(Active Server Pages)环境中处理JPEG格式的图片。这款组件通常包含多种图像操作功能,如图片的读取...

    ASP常用组件zujian

    AspJpeg是一个ASP组件,专门用于处理JPEG图像文件。它提供了从HTTP请求中读取图像、从磁盘加载、保存到磁盘、在内存中操作以及直接发送到浏览器的能力。开发者可以利用这个组件进行图片的上传、缩放、裁剪、旋转等...

    ASP组件很好用的能够现在强大的功能

    ASP组件在Web开发领域扮演着重要的角色,尤其对于那些使用Active Server Pages (ASP) 技术构建动态网站的开发者来说。这些组件极大地扩展了ASP的功能,使得开发者可以轻松实现复杂的功能,比如图像处理、邮件发送、...

    ASP图片组件,不错的一款网站图片处理组件

    ASP图片组件是Web开发中的一种重要工具,尤其在构建动态网站时,对于图像处理功能的需求不可或缺。本组件,名为ASPJPEG,是专为ASP(Active Server Pages)平台设计的,用于处理和操作图像的高效解决方案。它允许...

    wfImage图像处理组件v3.0

    6. 多语言支持:考虑到WFImage支持多种编程语言,这意味着无论你使用ASP、.NET、VB还是Delphi,都可以无缝集成这个组件,快速实现图像处理功能。 7. 性能优化:为了满足高性能应用的需求,WFImage在设计时考虑了...

    asp无组件上传程序 带缩略图

    生成缩略图的ASP程序通常会使用图像处理库,如GDI+,来读取原始图像,调整大小并保存为新的缩略图文件。 在ASP中实现这个功能,开发者需要了解以下几个关键知识点: 1. **文件上传处理**:ASP通过Request对象的...

    ASP生成PDF组件

    使用ASPPDF组件,开发者可以实现以下关键功能: 1. **生成PDF**:从HTML、XML、RTF、Text或图像等源数据生成PDF文件,使得网页内容可以被保存为便于分发和打印的格式。 2. **编辑PDF**:添加、删除、移动或修改PDF...

    Delphi写的ASP图象组件

    总结来说,这个Delphi编写的ASP图像组件是一个强大的服务器端图像处理工具,它通过ActiveX技术使ASP页面能够执行丰富的图像操作。开发人员可以利用这个组件轻松地在网页上实现图像管理功能,提高网站的互动性和功能...

    asp上传加水印组件

    4. AspJpeg组件:AspJpeg是一个常用的ASP图像处理库,用于读取、写入、修改和显示JPEG图像。在ASP上传加水印组件中,AspJpeg可能被用作底层技术,提供图像处理的能力。 5. 安全性:组件通常会包含一些安全机制,...

    aspPDF_组件.rar

    在使用aspPDF组件时,开发者需要按照官方文档或示例代码进行配置和调用。例如,可以使用以下代码创建一个新的PDF文档: ```vbnet Dim pdf As New aspPDF() pdf.CreateDoc() pdf.AddPage() pdf.TextOut(50, 50, ...

    ASP先锋无组件上传类.rar

    ASP先锋无组件上传类是一个专为ASP(Active Server Pages)平台设计的安全上传组件,它强调了安全性,无需使用FileSystemObject(FSO)组件,从而避免了因FSO引发的潜在安全问题。在ASP环境中,FSO允许程序对服务器...

    一款很好的PDF组件(ASP生成PDF)

    【ASP PDF组件与PDF生成技术】 在Web开发中,生成PDF文档是一项常见的需求,用于提供打印友好版本或者方便用户下载的格式。ASP(Active Server Pages)是微软开发的一种服务器端脚本环境,常用于构建动态网页。而...

    aspjpeg2(ASP下用到的图像处理组件)

    ASPJPEG2是一款在ASP环境下用于图像处理的组件,它提供了丰富的功能,使开发者能够在服务器端进行图像的操作,如创建、读取、修改和保存图片。这个组件特别适用于那些需要动态生成或编辑图像的Web应用程序,比如网站...

    asp无组件上传图片,aspjpeg生成缩略图和添加水印.zip

    ASPJPEG是一个经典的ASP图像处理组件,虽然在标题中提到,但在提供的文件列表中并没有看到这个组件本身。通常,ASPJPEG用于在服务器端生成JPEG图片,调整尺寸,添加水印等。在没有提供组件的情况下,可能是在ASP...

    ASP条形码生成组件,不用DLL简单易用!

    "条形码生成函数.asp" 这个文件很可能是该组件的核心代码,包含了一个或多个函数,这些函数接收特定参数,如条形码类型(如EAN-13、UPC-A等)、数据值,然后返回一个HTML字符串或图像数据,可以在网页上显示生成的...

    wfTextImage文字图像组件 v1.5

    **wfTextImage文字图像组件 v1.5**是一款专门用于将文本内容转化为GIF动态图的工具,旨在防止文本被轻易复制和抄袭,为在线发布的内容提供了一种有效的版权保护手段。这一组件特别适用于那些希望保护其知识产权的...

    soft_用ASP判断图像长宽的组件.zip.zip

    这个"soft_用ASP判断图像长宽的组件.zip.zip"文件似乎包含了一个特定的ASP组件,该组件允许开发者在服务器端检查图像文件的尺寸,即宽度和高度。这种功能在很多应用场景中都是必要的,例如在上传图片时进行预处理,...

    ASP图像上传控件

    ASP图像上传控件是.NET开发中的一个重要组成部分,它允许用户在网页上上传图片,并提供了丰富的功能,如图像预览、剪切、缩放等。在ASP.NET环境中,这样的控件通常是一个服务器端组件,用于接收客户端(通常是浏览器...

    子博asp字符转图片组件 -ASP源码.zip

    1. 图片生成:通常会使用GDI+(Graphics Device Interface Plus)库来创建图像,包括设置画布大小、颜色、字体等,然后将字符绘制到图像上。 2. 随机性和复杂性:为了防止被轻易破解,图片中的字符可能会随机生成,...

Global site tag (gtag.js) - Google Analytics