我收到了一堆“.tif”图像文件,这些文件应显示在我的.aspx页面上。 虽然我可以在设计时看到这些图像。 asp:Image无法在浏览器上呈现图像(.tif)。
如果我使用.jpg文件而不是tiff图像,它会完美渲染。
为什么这是一个限制的任何想法?
我尝试过的事情
在我的项目中有一个Handler文件 SampleHandler.ashx 来处理请求
public void ProcessRequest(HttpContext context)
{
string path = context.Server.MapPath("~/img/image.tif");
Image img = Image.FromFile(path);
img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
在我的aspx代码中引用Handler。
实施例
<img src="SampleHandler.ashx"/>
这种方法有效!!但是,如果我要加载多个“。tif”文件呢?
谢谢
配置:ASP.NET 2.0 VSNET2008
答案 0 :(得分:1)
asp:Image只向HTML输出呈现img标记。检查生成的源以验证它是否具有正确的路径。如果是,请尝试直接浏览该路径并查看是否获得该图像。
(假设您没有在直接浏览中看到图像,则表示您的服务器未配置为提供tiff文件或您的路径不正确。)
答案 1 :(得分:0)
您需要配置Web服务器以返回正确的MIME类型。
tiff文件的正确mime类型是 image / tiff
您需要运行IIS Express,IIS 7或更高版本,并将以下内容添加到您的web.config
<system.webServer>
<staticContent>
<mimeMap fileExtension=".tiff" mimeType="image/tiff" />
<mimeMap fileExtension=".tif" mimeType="image/tiff" />
</staticContent>
</system.webServer>
如果你正在运行webdev服务器,那你就不走运了(这很古老)。安装IIS Express或改为运行IIS。
答案 2 :(得分:0)
浏览器通常不支持.TIF(TIFF)文件格式。您应该只期望当前或更旧的浏览器支持图像文件的GIF,JPG和PNG。 Refer to W3C page on images。
这个似乎在开发环境中工作的原因是它只是使用操作系统来解码支持更多图像格式的图像。但这只是一种幻觉,因为浏览器不支持它。