iT邦幫忙

0

如何呈現副檔名為.tif與.tiff的檔案

file是我的資料來源,裡面存放很多檔案,並有兩個欄位,分別為file_stream(檔案byte[])與name(檔案名稱),若要呈現圖檔jpg;jpeg;png;gif;就是將file_streambase64,再串成img tag所需的src,目前可以如期呈現,但在實作tiftiff未成功,想詢問可以怎麼實做呢?

var fileStream=file[i].file_stream;
var filePath="data:image/png;base64,"+ Convert.ToBase64String(fileStream);
var fileExtension = Path.GetExtension(file[i].name);

if(fileExtension==".jpg" || fileExtension==".jpeg" || fileExtension==".png" ||fileExtension==".gif") {
    <img src="@(filePath)" style='text-align:center' />
    <br />
}
else if(fileExtension==".tif" || fileExtension==".tiff"){
    //不work
    <img src="@(filePath)" style='text-align:center' />
    <br />
}
ccutmis iT邦高手 8 級 ‧ 2020-06-03 09:20:43 檢舉
你有學過Python嗎 有的話用Python把tif檔轉成jpg|gif|png是分分鐘的事
詳情可以搜'stackoverflow python tiff to jpg'
sam0407 iT邦高手 1 級 ‧ 2020-06-03 10:17:24 檢舉
tif/tiff檔的格式是允許多頁的喔~多頁時是取第一頁嗎?還是都要顯示出來?
https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/442486/
anniecat iT邦新手 3 級 ‧ 2020-06-04 09:37:38 檢舉
不過目前專案team會希望使用C#的方式作業,目前尚未接觸Python,謝謝ccutmis 與 sam0407 的方法提供~

2 個回答

0
YoChen
iT邦研究生 5 級 ‧ 2020-06-02 16:35:02

建議您在讀取圖片之前先做轉檔的動作,
現在的瀏覽器大多都不直接支援tiff格式了。
參考: Image format support

看更多先前的回應...收起先前的回應...
anniecat iT邦新手 3 級 ‧ 2020-06-02 16:48:09 檢舉

目前網路上看到的方法,好像都要在上傳檔案的時候,進行轉檔(tiff轉png或jpg),但因為到時候下載下來,會希望是原始的檔案,也是想往您說的讀取圖片前先做轉檔的動作,不過目前還沒找到實作方法,謝謝您~

listennn08 iT邦研究生 2 級 ‧ 2020-06-02 16:59:49 檢舉

anniecat

var memoryStream = new System.IO.MemoryStream();
using (var image = System.Drawing.Image.FromFile("myfile.tif"))
    image.Save(memoryStream, ImageFormat.Png);

return File(memoryStream, "image/png");

給你參考

淺水員 iT邦新手 1 級 ‧ 2020-06-03 01:36:00 檢舉

這個看起來配合 canvas 可以直接在前端顯示 tiff 檔案
Quramy/decode-tiff
我是還沒測試過,假設可以的話,還是很麻煩

仍然覺得顯示的是 png 或是 jpg的縮圖,然後下載時才真的下載原檔案會比較簡單

anniecat iT邦新手 3 級 ‧ 2020-06-04 09:35:39 檢舉

昨天有找到這個方法,但目前還在嘗試中,您們說的方法我也來嘗試看看,謝謝三位的幫忙~

0
japhenchen
iT邦研究生 2 級 ‧ 2020-06-02 16:54:56

..........回錯了........找不到自刪的功能....

我要發表回答

立即登入回答