【发布时间】:2012-12-11 21:52:21
【问题描述】:
我的服务器上的这个文件夹中存储了一张图像: \images\freemedia\largethumbs\test.png
在我的 default.aspx 页面上,我有一个图像控件:
<asp:Image ID="Image1" runat="server" />
当访问者请求default.aspx页面时,我想从服务器获取test.png图片,在右下角添加水印文字“hello world”。 我不想将带水印的图像保存到服务器,因为我想节省存储空间并且仍然想访问原始图像。 从显示给访问者的图像中,他最好不能推导出原始文件名,因此不应该让他看到原始文件名是 test.png。
我在 Google 上搜索了很多,但所有示例都将带水印的图像保存到磁盘,这是我不想要的。
我已经有一个 httphandler:
Public Class pichandler : Implements IHttpHandler
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim data As Byte()
Dim fName As String
Using w As New generaltablesTableAdapters.freemediaTableAdapter
fName = w.GetDataById(i)(0).medialink.ToString
End Using
data = My.Computer.FileSystem.ReadAllBytes(context.Server.MapPath("~/images/freemedia/thumbs/" & fName))
' --> how can I add a watermark text to the image here?!?!?!?
context.Response.ContentType = "image/jpeg"
context.Response.BinaryWrite(data)
End Sub
End Class
有没有人有关于如何做到这一点的代码示例?
如果有其他方法可以做到这一点,那也没关系。但请说明我如何将带水印的图像作为最终 HTML 的一部分提供。
【问题讨论】: