¿Los archivos con la extensión "hdr" deberían terminar con caracteres de nueva línea?

¿Los archivos con la extensión "hdr" deberían terminar con caracteres de nueva línea?

Estoy escribiendo un script que aplica el formato de archivos. Una de las cosas que hace es garantizar que todos los archivos de texto terminen con caracteres de nueva línea.

Un área de la que no estoy seguro es la de .hdrlos archivos. Estas son imágenes, el filecomando de Linux dice que lo son Radiance HDR image data, pero se pueden abrir con un editor de texto y el script las interpreta como archivos de texto. Como tal, el script agrega automáticamente nuevas líneas a estos archivos.

¿Es esto algo bueno? ¿Cómo se utiliza este tipo de archivo? ¿Existe algún caso de uso para que estos archivos de imagen se lean como texto? ¿Hay alguna desventaja en hacer que estos archivos terminen con caracteres de nueva línea? ¿Debo agregar una excepción a mi script para excluir hdrarchivos?

Respuesta1

el script agrega automáticamente nuevas líneas a estos .hdrarchivos [ ]. ¿Es esto algo bueno?

No. Pero probablemente tampoco esté mal. Sobre el formato [el énfasis es mío]:

El archivo comienza con la firma #?RADIANCEy luego varias líneas que enumeran los comandos utilizados para generar la imagen. […] También hay key=valuedeclaraciones, incluida la línea FORMAT=32-bit_rle_rgbe.

Después de esto hay una línea en blanco que indica el final del encabezado. Una sola línea describe la resolución y el orden de los píxeles. Tal como lo producen las herramientas Radiance, esto siempre toma la forma de -Y height +X width. Después de esta línea sigue ladatos de píxeles binarios.

(fuente)

Descargué un .hdrarchivo ( nancy_church_1.hdr) deeste sitio. Agregué una nueva línea a una copia e incluso agregué otro archivo. Probé con luminance-hdr, la herramienta no se quejó.

No me sorprende. La resolución es conocida; de acuerdo aesta descripciónhay cuatro bytes por píxel e incluso si hay una codificación de longitud de ejecución (rle) involucrada, aún es fácil saber cuándo dejar de interpretar los datos de píxeles binarios. Y no hay ningún pie de página que podamos romper.

Aún así, otras herramientas pueden quejarse o no.

Incluso si es inofensivo, agregar un carácter de nueva línea a un .hdrarchivo no sirve para nada. Es posible que desee agregar nuevas líneas faltantes para satisfacer una de lasRequisitos POSIX con respecto a archivos de texto, pero .hdrlos archivos son, por diseño, no archivos de texto en primer lugar. No hay nada que arreglar.


Respuestas a las preguntas explícitas:

¿Los archivos con la hdrextensión de archivo deberían terminar con caracteres de nueva línea?

Pregunta algo complicada por la semántica. No, no deberían terminar con caracteres interpretados como nuevas líneas. Sin embargo , pueden terminar con 0x0abytes. Como parte de los datos de píxeles binarios, 0x0ano deben interpretarse como una nueva línea.

¿Cómo se utiliza este tipo de archivo?

Como gráficos.

¿Existe algún caso de uso para que estos archivos de imagen se lean como texto?

Puede leer el encabezado y la línea que describe la resolución y el orden de los píxeles. No deberías intentar leer elenteroarchivo como texto.

¿Hay alguna desventaja en hacer que estos archivos terminen con caracteres de nueva línea?

Existe la posibilidad de que los archivos ocupen más bloques en el sistema de archivos. Aparte de esto, es difícil decirlo, algunas herramientas pueden quejarse. No hay beneficios, por lo que sólo puedes empeorar o igualar las cosas.

¿Debo agregar una excepción a mi script para excluir .hdrarchivos?

Creo que deberías. Me gustaría. Y prefiero confiar en el filecomando, no en la extensión.

información relacionada