Un CD, un DVD o un Blu-ray puede llevar una imagen visible en discos que se nota a simple vista sobre la cara grabada, sin necesidad de ningún lector especial para verla. Eso es lo que genera DiscImageStudio, el proyecto de código abierto publicado en GitHub por JiaFeiMiao-K-Cat: convierte cualquier fotografía en el patrón físico de bits de un CD, un DVD o un Blu-ray BD-R, listo para grabarse en un disco real.

Tiene una app de escritorio para Windows con editor visual completo, y una CLI experimental para Linux y macOS que genera los mismos ISO, WAV o RAW desde la terminal, con el mismo motor de generación física por dentro.

TL;DR

  • DiscImageStudio convierte una imagen en datos físicos de CD, DVD o Blu-ray BD-R que se ven al grabarse en un disco real.
  • La app de escritorio corre en Windows 10 2004 o superior; la CLI experimental cubre Linux, macOS Intel y Apple Silicon.
  • Un flujo de calibración fotográfica eleva la precisión del trazado de pistas de 10⁻⁶ a 10⁻¹⁴, según el propio proyecto.
  • El comando cd-generate exporta WAV más CUE o RAW para audio, y agrega una carpeta de datos con --data-dir.
  • El motor de Blu-ray soporta discos BD-R de una capa de 25 GB con UDF 2.01 y dibujo puro.

¿Qué es DiscImageStudio?

DiscImageStudio es una herramienta de código abierto que convierte una fotografía en datos físicos de un CD, DVD o Blu-ray BD-R, de forma que al grabarse en un disco real aparece una imagen visible en discos sobre la cara reflectante, visible a simple vista bajo luz directa.

El proyecto vive en el repositorio JiaFeiMiao-K-Cat/DiscImageStudio en GitHub, con documentación en chino simplificado, chino tradicional, inglés y japonés. No es un software de arte generativo genérico: cada módulo respeta las restricciones físicas reales de la capa de datos de cada formato, así que el patrón que ves después de grabar el disco es, literalmente, el contenido binario del medio.

Por qué importa un disco que dibuja su propio contenido

Durante años, decorar la cara de un CD significó imprimir una etiqueta encima o serigrafiarlo antes de grabarlo, como hacían las fábricas con los discos oficiales de arcade. DiscImageStudio invierte el proceso: el dibujo nace de los mismos bits que el lector interpreta como datos, no de una capa añadida después. El resultado es una pieza donde el contenido técnico (una ISO, un audio CD, un UDF) y la estética visual son el mismo archivo.

Para un desarrollador, el interés no es solo decorativo. Entender cómo nace una imagen visible en discos conecta directamente con la ingeniería real de formatos ópticos. El proyecto expone, con código abierto, cómo se modula una señal en DVD, cómo se calculan sectores de corrección de errores en Blu-ray y cómo trazar una espiral con precisión submicrométrica. Es un nivel de detalle que casi nunca se documenta fuera de especificaciones pagas, como las de la Blu-ray Disc Association.

Cómo funciona la imagen visible en discos: del píxel al surco

El punto de partida siempre es una imagen cualquiera: PNG, JPEG, BMP o GIF (toma el primer fotograma si es animado). El motor la reduce a dos niveles, 0 y 255, con un algoritmo de difusión de error, porque la superficie de un CD o un DVD solo puede marcar "hueco" o "no hueco" en cada posición física. No existe escala de grises real: hay que simularla con la densidad de puntos negros, igual que un periódico en blanco y negro simula fotos con tramas de puntos.

Una vez binarizada, la imagen se traduce a los bytes que cada formato interpreta como negro o blanco en la capa reflectante. Para CD, el proyecto usa el par 0x0D / 0xAA; para DVD, que grava en un dominio ya revuelto (scrambled) por el propio estándar, el par pasa a ser 0xA5 / 0x92. Esa diferencia explica por qué un patrón nítido en un CD puede salir borroso en un DVD si se usan los bytes equivocados: cada formato tiene su propia tabla de verdad entre "byte grabado" y "lo que refleja la lente del lector".

flowchart TD A["Imagen PNG/JPEG/BMP/GIF"] --> B["Difusion de error a 2 niveles (0/255)"] B --> C["Mapeo a bytes del formato"] C --> D{"Formato de disco"} D -->|"CD"| E["Pares 0x0D / 0xAA"] D -->|"DVD"| F["Dominio scrambled 0xA5 / 0x92"] D -->|"BD-R"| G["Codificacion 17PP/ECC"] E --> H["Salida fisica: ISO, WAV+CUE o RAW"] F --> H G --> H 

Después de resolver los bytes, el motor proyecta la imagen sobre la geometría real del disco: una espiral que crece desde el centro hacia el borde. El comando solve usa, por defecto, un mapeo de textura rápido en sentido horario para generar la imagen de DVD. Es una aproximación geométrica fija que funciona sin calibrar, pero asume que la separación entre vueltas de la espiral, lo que el proyecto llama "paso de pista", es constante de principio a fin.

Un CD grabado solo puede marcar dos estados físicos por posición, reflectante o no reflectante.

Ejemplos prácticos y cómo empezar

La CLI experimental para Linux y macOS y los paquetes de Windows ya incluyen el runtime de .NET 10, así que no hace falta instalar nada extra: alcanza con descargar el paquete correcto desde la página de Releases y darle permiso de ejecución.

Paso 1: preparar el binario en Linux

# Descargar el paquete linux-x64 (o linux-arm64 en ARM) desde la pagina de Releases tar -xzf disc-image-studio-linux-x64.tar.gz cd disc-image-studio-linux-x64 chmod +x disc-image-studio ./disc-image-studio --help 

El último comando imprime la lista de subcomandos disponibles (solve, cd-generate, bd-generate, calibrate, entre otros) y confirma que el binario corre sin dependencias externas. En Apple Silicon cambiá el tarball por osx-arm64 (o osx-x64 en Mac con Intel); en Windows alcanza con ejecutar el win-x64.exe descargado, que abre directamente la interfaz gráfica.

Paso 2: el "hola mundo" con un CD de prueba

./disc-image-studio cd-generate --input picture.png --output sample.wav --sectors 2 

Este comando, tomado del propio repositorio, genera un WAV de apenas 2 sectores a partir de picture.png y, al no indicar una carpeta de datos, también escribe el sample.cue que acompaña al audio. Es la forma más rápida de confirmar que la instalación funciona antes de pasar a una imagen de tamaño real.

Paso 3: un CD de datos con carpeta propia

./disc-image-studio cd-generate --input picture.png --output disco.wav --data-dir ./mis-archivos 

Al sumar --data-dir, el resultado deja de ser solo audio: el motor reserva una región de archivos, la que la app marca en amarillo en su vista previa, y construye un sistema de archivos real dentro del mismo disco que dibuja la imagen.

Paso 4: generar un DVD completo

./disc-image-studio solve --input foto.jpg --output pelicula.iso 

El subcomando solve resuelve la geometría del DVD con el mapeo de textura rápido mencionado antes y escribe pelicula.iso, lista para grabar con cualquier software que acepte ISO estándar, como ImgBurn o cdrecord.

Verificar que el motor de DVD sigue funcionando igual

./disc-image-studio selftest 

Según la documentación del proyecto, selftest corre el autochequeo de regresión determinista del motor de DVD. Si cambiás de versión del binario o movés el proyecto a otra máquina, correr este comando antes de grabar un disco real es la forma documentada de confirmar que el motor no cambió de comportamiento. El repositorio no publica el texto exacto de la salida, así que la verificación confiable es el código de salida del proceso: 0 significa que el autochequeo pasó, cualquier otro valor señala una regresión.

Generar un Blu-ray de solo dibujo

./disc-image-studio bd-generate --input logo.png --output disco.iso 

Para Blu-ray, bd-generate escribe la ISO completa y además un archivo disco.iso.json adicional, el "sidecar", con los parámetros físicos usados, útil para repetir exactamente la misma geometría en una segunda tirada del mismo disco.

⚠️ Ojo: la grabación instantánea (streaming directo a la unidad) es experimental y no guarda una imagen de respaldo completa. El propio proyecto advierte: usá solo discos completamente vírgenes, porque no hay forma de deshacer una escritura a mitad de una pista.

Casos de uso reales para una imagen visible en discos

El caso más directo es el arte físico: ediciones limitadas de software, discos de regalo o merchandising donde la cara del disco muestra un logo o una ilustración sin pegar ninguna etiqueta encima, algo que durante décadas solo lograban las fábricas con serigrafía profesional sobre discos oficiales de arcade.

El segundo caso es educativo. Estudiantes de ingeniería o hobbyistas de hardware retro usan el proyecto para entender, con un ejemplo tangible, cómo codifica datos un lector óptico. Ver el propio patrón de bits en la superficie de un disco conecta la teoría de modulación de canal con un objeto físico que se puede sostener en la mano.

El tercer caso, más de nicho, es la preservación de hardware retro. La sección de calibración documenta cómo medir la geometría real de una grabadora específica fotografiando un disco de prueba, algo que también sirve para diagnosticar si una unidad óptica vieja grava con el paso de pista correcto o si ya perdió precisión mecánica con los años.

Errores comunes y buenas prácticas

DiscImageStudio no es la herramienta correcta si necesitás que la portada se vea idéntica en cualquier lector: la nitidez final depende de la calibración de cada grabadora física, así que el mismo archivo generado puede verse ligeramente distinto en dos unidades sin calibrar cada una por separado.

  • Usar los códigos de CD en un DVD: el par 0x0D/0xAA no sirve para DVD, que grava en el dominio scrambled; mezclar tablas produce un patrón borroso o invertido.
  • Probar la grabación instantánea en un disco no virgen: la función es experimental y sobrescribe sin red de seguridad; el propio proyecto pide usar solo medios desechables.
  • Ignorar la calibración en Blu-ray: sin calibrar, el motor asume un paso de pista constante; en una grabadora real con holgura mecánica eso curva las líneas rectas de una mira de prueba, como muestra la comparación antes/después que publica el propio repositorio.
  • Borrar el sidecar JSON de Blu-ray: sin el archivo .json que acompaña a la ISO, no se puede repetir exactamente la misma geometría en una segunda tirada.
  • Compilar con un SDK distinto al fijado: el repositorio fija .NET 10 en global.json; usar otra versión del SDK rompe el build de forma poco obvia.

Comparativa: CD, DVD y Blu-ray dentro de DiscImageStudio

Los tres formatos comparten el mismo flujo de dithering y el mismo CLI, pero difieren en lo que exportan y en cuánta imagen pueden llevar. Un Blu-ray BD-R de una capa soporta hasta 25 GB, bastante más que un DVD o un CD, lo que permite dibujos con más detalle antes de que el ruido de la mecánica de grabación empiece a notarse.

FormatoQué exportaEscala de grisesFunción destacada

CDWAV+CUE o RAW (audio); ISO si hay --data-dirDos niveles, códigos 0x0D/0xAACompatible con cdrecord e ImgBurn
DVDISODos niveles en dominio scrambled, códigos 0xA5/0x92Mapeo de textura rápido en sentido horario (comando solve)
Blu-ray BD-RISO + sidecar .jsonCodificación 17PP/ECC en una capa de 25 GBSoporta UDF 2.01 además de dibujo puro

Una grabadora óptica real tiene holgura mecánica que curva las líneas rectas sin calibración.

Profundizando: calibración y arquitectura interna

La calibración es la parte más fina del proyecto. Consiste en fotografiar el disco físico ya grabado, y marcar en la foto el borde exterior real y el borde del agujero central. Con esos dos puntos, el motor ajusta una curva de tercer grado (cúbica) para el paso de pista, en vez de asumir que es constante.

Según documenta el propio repositorio, esa calibración eleva la precisión del dato físico determinable de 10⁻⁶ a 10⁻¹⁴, una diferencia de ocho órdenes de magnitud frente a identificar los bordes a ojo.

sequenceDiagram participant U as Usuario participant F as Foto del disco participant M as Motor de calibracion participant G as Generador U->>F: fotografia el disco grabado con mira en cruz F->>M: entrega bordes exterior e interior M->>M: ajusta curva cubica del paso de pista M->>G: nuevos parametros de geometria G-->>U: imagen regenerada y lista para regrabar Note over M,G: la curva cubica reemplaza al paso de pista constante 

Por dentro, el proyecto separa cada formato en un módulo independiente que implementa la misma interfaz, IOpticalDiscModule. CD, DVD y Blu-ray comparten el mismo catálogo de comandos y el mismo contrato de tareas, así que agregar un formato nuevo significaría escribir un módulo adicional sin tocar la CLI ni la GUI. El repositorio mantiene aparte, en DvdImageSolver, el motor de resolución de DVD original del proyecto, deliberadamente aislado del resto del código.

flowchart TD A["App WPF y CLI unificada"] --> B["IOpticalDiscModule"] B --> C["Modulo CD"] B --> D["Modulo DVD"] B --> E["Modulo Blu-ray"] C --> F[("DiscImageStudio.Cd")] D --> G[("DiscImageStudio.Dvd")] E --> H[("DiscImageStudio.BluRay")] 

El Blu-ray es el módulo más joven de los tres: trabaja con codificación 17PP/ECC y mapeo 3T/6T, y además de dibujo puro admite un sistema de archivos UDF 2.01 real sobre el mismo disco de 25 GB. Eso significa que el mismo BD-R puede ser, a la vez, una pieza de arte y un respaldo de datos utilizable.

📖 Resumen en Telegram: Ver resumen

Tu próximo paso: descargá el paquete linux-x64 u osx-arm64 desde la página de Releases y corré ./disc-image-studio cd-generate --input picture.png --output sample.wav --sectors 2 con cualquier PNG que tengas a mano para ver el flujo completo en menos de un minuto.

Preguntas frecuentes

¿DiscImageStudio funciona en Windows, Linux y macOS?

La app de escritorio con editor visual completo es solo para Windows 10 2004 o superior y Windows 11. La CLI experimental cubre Linux (x64 y ARM64) y macOS (Intel y Apple Silicon), pero todavía sin interfaz gráfica.

¿Hace falta instalar .NET para usar DiscImageStudio?

No. Tanto el ejecutable de Windows como los paquetes de la CLI para Linux y macOS incluyen el runtime de .NET 10, así que alcanza con descargar y ejecutar.

¿Qué diferencia hay entre el grabado instantáneo y exportar una ISO?

Exportar una ISO, un WAV+CUE o un RAW genera el archivo completo para grabarlo después con otro programa. El grabado instantáneo, todavía experimental, escribe directamente a la unidad óptica sector por sector, sin guardar esa copia intermedia.

¿Qué tamaño máximo admite el patrón visible en discos Blu-ray?

El motor de Blu-ray cubre discos BD-R de una sola capa de 25 GB, con soporte tanto para dibujo puro como para un sistema de archivos UDF 2.01 además de la imagen.

¿Por qué un disco calibrado se ve distinto a uno sin calibrar?

Sin calibración, el motor asume que la separación entre vueltas de la espiral es constante. Las grabadoras reales tienen holgura mecánica, así que las líneas rectas de una mira de prueba salen curvadas. La calibración fotográfica corrige esa curva ajustando una función cúbica real del paso de pista.

¿El código de DiscImageStudio es abierto?

Sí, el repositorio está publicado en GitHub con un archivo LICENSE propio, un aviso adicional de licencia (LICENSE-NOTICE.md) y notas de terceros (THIRD-PARTY-NOTICES.txt).

Referencias

📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.