簡體   English   中英

如何將多個TIFF文件添加到ASP.NET輸出流

[英]How to add multiple TIFF files to ASP.NET output stream

我需要在同一ASPX頁面上顯示一個或多個TIFF文件。 為了增加復雜性,某些文件可能是多頁TIFF文件。 IE6-8,FF 3.X,需要Google Chrome支持。

通過將文件轉換為MemoryStream並通過BinaryWrite發送到Response,我已經成功顯示了任何一個圖像,但是似乎找不到支持多個文件/頁面的方法。 做到這一點的最佳方法是什么?

每個請求總是針對單個“對象”,即頁面或圖像或其他任何對象。 要針對單個請求輸出多張圖像,我想到的唯一方法是將這些圖像拼接成一個巨型圖像並將其推出。

瀏覽器不支持TIFF格式,您需要先將圖像轉換為其他格式,例如JPEG,然后再將其發送到瀏覽器。 另外,您需要一次發送一個。 在您的aspx頁中放置幾個​​img標簽以獲取所有圖像。 另外,您還需要創建一個界面來翻動多頁圖像中的頁面,並將每個頁面作為單獨的請求發送到服務器或從服務器發送出去。

與其花費時間轉換為MemoryStream,不如嘗試僅使用Response.WriteFile()

同樣,在aspx上顯示多個圖像的方法當然是,只需在頁面上放置多個imgasp:Image標簽,然后讓瀏覽器處理對這些圖像的新請求。 不要嘗試寫多個圖像輸出到同樣的要求。 這可能意味着您需要為(或更好的是ashx HttpHandler)創建一個新的aspx來處理這些請求。

您將無法在一個響應中發送多張圖片。 TIF確實在同一張圖片中支持多個頁面,但聽起來並不是您想要的。

你將需要做的是建立一些類型的圖像處理程序(例如MYIMAGE。ashx的 ),只有一個圖像返回。 然后在調用頁面中有多個img標記,這些標記與具有所需圖像ID的ashx鏈接。 ashx文件將分別處理每個請求,但是您的主要aspx或html頁面將負責顯示它們,但是這是必需的。

令我驚訝的是,還沒有人說這句話,這可能與您的情況無關,但是您可以使用JavaScript輕松地做到這一點。 您將進行Ajax調用,並從中返回所有圖像的數據。 返回數據可以是一個JSON數組,其中每個圖像都有base64編碼的數據。 然后,頁面中的腳本將需要遍歷JSON數組中的所有圖像,並將每個圖像插入頁面的DOM中。

我不知道您是否熟悉JavaScript,以及您是否已經在使用Ajax。 如果沒有,也許這不是您的解決方案。 但是,如果您願意接受這些技術,那么這是一項相當容易的任務。 例如,對於JQuery,這將非常簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM