具有“hdr”檔案副檔名的檔案是否應該以換行符號結尾?

具有“hdr”檔案副檔名的檔案是否應該以換行符號結尾?

我正在編寫一個強製文件格式的腳本。它所做的事情之一是確保所有文字檔案都以換行符號結尾。

我不確定的一個領域是.hdr文件。這些是圖像,Linuxfile命令說它們是Radiance HDR image data,但可以使用文字編輯器打開它們,並且腳本將它們解釋為文字檔案。因此,腳本會自動將換行符附加到這些文件中。

這是一件好事嗎?如何使用該文件類型?是否有任何將這些圖像檔案讀取為文字的用例?讓這些檔案以換行符號結尾有什麼缺點嗎?我應該向腳本添加例外以排除hdr文件嗎?

答案1

腳本會自動將換行符號附加到這些 [ .hdr] 檔案中。這是一件好事嗎?

不。關於格式[強調我的]:

該檔案以簽名開頭#?RADIANCE,然後是幾行列出用於生成圖像的命令。 [...] 還有key=value聲明,包括行FORMAT=32-bit_rle_rgbe.

之後是一個空行,表示標題的結束。單行描述解析度和像素順序。當 Radiance 工具產生時,它始終採用-Y height +X width.此行之後是二進位像素數據

來源

我從.hdr( ) 下載了一個文件nancy_church_1.hdr這個網站。我在副本中添加了換行符,甚至附加了另一個文件。我用 進行了測試luminance-hdr,該工具沒有抱怨。

我不驚訝。解析度是已知的;根據這個描述每個像素有四個字節,即使涉及遊程編碼 (rle),仍然很容易知道何時停止解釋二進位像素資料。而且我們沒有可以破壞的頁腳。

還有其他工具可能會或可能不會抱怨。

即使它是無害的,向文件添加換行符也.hdr沒有任何作用。人們可能想要添加缺少的換行符以滿足其中之一關於文字檔案的 POSIX 要求,但.hdr文件的設計初衷並不是文字檔。沒有什麼可以修復的。


明確問題的回答:

檔案副檔名的檔案是否應該hdr以換行符號結尾?

由於語義的原因,這個問題有點棘手。不,它們不應以解釋為換行符的字元結尾。0x0a但它們可能以位元組結尾。作為二進位像素資料的一部分0x0a不應被解釋為換行符。

如何使用該文件類型?

作為圖形。

是否有任何將這些圖像檔案讀取為文字的用例?

您可以閱讀標題和描述解析度和像素順序的行。你不應該嘗試閱讀所有的文件為文字。

讓這些檔案以換行符號結尾有什麼缺點嗎?

文件有可能會佔用檔案系統中的更多區塊。除此之外,很難說,有些工具可能會抱怨。沒有任何好處,所以你只能讓事情變得更糟或變得平等。

我應該向腳本添加例外以排除.hdr文件嗎?

我想你應該。我會。而且我寧願依賴file命令,而不是擴展。

相關內容