ファイルのフォーマットを強制するスクリプトを作成しています。スクリプトの機能の 1 つは、すべてのテキスト ファイルが改行文字で終わるようにすることです。
よくわからないのは、.hdr
ファイルについてです。これらは画像であり、Linuxfile
コマンドでは と表示されますRadiance HDR image data
が、テキスト エディターで開くことができ、スクリプトはそれをテキスト ファイルとして解釈します。そのため、スクリプトはこれらのファイルに自動的に改行を追加します。
これは良いことでしょうか? このファイル タイプはどのように使用されますか? これらの画像ファイルをテキストとして読み取るユースケースはありますか? これらのファイルを改行文字で終了させることに欠点はありますか?hdr
ファイルを除外するためにスクリプトに例外を追加する必要がありますか?
答え1
スクリプトはこれらの [
.hdr
] ファイルに自動的に改行を追加します。これは良いことでしょうか?
いいえ。でも、悪くはないかもしれません。フォーマットについて[強調は筆者による]:
ファイルは署名で始まり
#?RADIANCE
、その後に画像を生成するために使用されたコマンドをリストした数行が続きます。 […]key=value
行を含む宣言もありますFORMAT=32-bit_rle_rgbe
。この後にはヘッダーの終わりを示す空白行が続きます。1行で解像度とピクセル順序を記述します。Radianceツールで生成される場合、これは常に の形式になります
-Y height +X width
。この行の後にバイナリピクセルデータ。
(ソース)
.hdr
ファイル(nancy_church_1.hdr
)をダウンロードしましたこのサイトコピーに改行を追加し、さらに別のファイルを追加しました。 でテストしましたがluminance-hdr
、ツールはエラーを報告しませんでした。
驚きません。決議はわかっています。この説明ピクセルあたり 4 バイトあり、ランレングス エンコーディング (rle) が関係する場合でも、バイナリ ピクセル データの解釈をいつ停止するかは簡単にわかります。また、分割できるフッターはありません。
他のツールでは、エラーが発生する場合と発生しない場合があります。
たとえ無害だとしても、.hdr
ファイルに改行文字を追加しても意味がありません。不足している改行文字を追加して、テキストファイルに関するPOSIX要件ただし、.hdr
ファイルは設計上、そもそもテキスト ファイルではありません。修正する必要はありません。
明確な質問に対する回答:
ファイル拡張子を持つファイルは
hdr
改行文字で終わる必要がありますか?
意味論上、やや難しい質問です。いいえ、改行として解釈される文字で終わってはなりません。0x0a
ただし、バイトで終わることはあります。バイナリ ピクセル データの一部は、0x0a
改行として解釈されるべきではありません。
このファイルタイプはどのように使用されますか?
グラフィックとして。
これらの画像ファイルをテキストとして読み取る使用例はありますか?
ヘッダーと解像度とピクセル順序を記述した行を読むことができます。全体テキストとしてファイルします。
これらのファイルを改行文字で終わらせることに何か欠点はありますか?
ファイルがファイルシステム内でより多くのブロックを占める可能性があります。これ以外には、何とも言えませんが、一部のツールは文句を言うかもしれません。メリットはないので、状況が悪化するか、同じになるかのどちらかです。
ファイルを除外するためにスクリプトに例外を追加する必要がありますか
.hdr
?
file
そうすべきだと思います。私ならそうします。そして拡張機能ではなくコマンドに頼りたいです。