将已调整大小的图像显示为返回值,而不是显示为页面内容

时间:2018-06-07 12:51:43

标签: asp.net vb.net content-type system.drawing

Page_Load上,我希望页面显示图像的方式与"在新标签页中打开图像" 时显示的图像相同。换句话说,我希望页面显示为内容类型Image/jpeg,而不是在img HTML标记中呈现图像。

我使用Page_Load上的以下代码以这种方式成功显示了图片:

Page.Response.ContentType="image/jpeg"
Page.Response.WriteFile("Path_to_the_Image")

但是,我的情况需要在调整大小后显示图像。我创建了一个调整图像大小并将调整后的图像作为Drawing.Bitmap

返回的函数
ResizeImage(bmSource As Drawing.Bitmap, TargetWidth As Int32, TargetHeight As Int32)

如何使用该函数的返回值并以与显示第一张图像相同的方式显示它?

Page.Response.WriteFile()需要String作为输入。有没有办法可以直接在页面中显示ImageSystem.Bitmap类型的图像,而无需将其保存在临时文件夹中然后使用其路径(作为String)并将其传递给Page.Response.WriteFile

1 个答案:

答案 0 :(得分:3)

Page.Response.ContentType="image/jpeg"
Using resizedImage As Bitmap = ResizeImage(source, 100, 100)
    source.Dispose()    
    resizedImage.Save(Page.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
End Using
Page.Response.Flush()

这应该有效,也许我的语法中有一些错误。我不经常在vb.net中编码。

编辑代码因为@Joel Coehoorn注意