Edición no destructiva de fotos: por qué los ajustes deben partir del original

Aplicar filtros uno sobre otro y guardar sucesivamente puede acumular artefactos, especialmente si usamos formatos con pérdida. En un editor, la vista previa debería poder recomponerse desde la fuente y sus parámetros.

El problema y el alcance del ejemplo

La ficha de CanvasLab AI: Editor de Fotos resume su función así: «Retoca fotografías con IA, recorta fondos, dibuja y convierte imágenes.» CanvasLab AI incluye ajustes fotográficos, herramientas de dibujo y exportación según su ficha. Este ejemplo construye dos salidas independientes a partir de una misma imagen original. Se utiliza Pillow para demostrar el principio, no para describir la implementación de CanvasLab.

Cómo reproducir la idea

Instala Pillow (python -m pip install Pillow), coloca una imagen origen.jpg y ejecuta edicion.py.

from PIL import Image, ImageEnhance, ImageOps with Image.open('origen.jpg') as source: original = ImageOps.exif_transpose(source).convert('RGB') # Dos variantes derivadas de la misma fuente en memoria. contraste = ImageEnhance.Contrast(original).enhance(1.25) color = ImageEnhance.Color(original).enhance(0.65) contraste.save('variante_contraste.png', format='PNG') color.save('variante_color.png', format='PNG') # Para otro ajuste, modificaríamos los parámetros y volveríamos a partir # de original, no de la imagen exportada anteriormente. print('Dimensiones de origen:', original.size) 

Qué demuestra el código

El objeto original se mantiene sin cambios mientras calculamos variantes. El control de contraste no altera el punto de partida del ajuste de saturación. En una interfaz real podríamos guardar una estructura de parámetros y reconstruir la previsualización bajo demanda.

Pruebas recomendadas

Genera ambas imágenes y compara con el archivo original. Modifica 1.25 por 1.10: solo cambia la variante de contraste. Haz una prueba acumulativa de 10 exportaciones JPEG para entender cómo un flujo destructivo puede degradar resultados.

Límites que conviene reconocer

No implementa capas, historial, algoritmos de IA, edición vectorial ni gestión avanzada de color. Reabrir originales grandes repetidamente también puede ser costoso; conviene usar cachés y previsualizaciones a resolución reducida.

Qué aprendemos

Una edición robusta suele separar fuente, operaciones y exportación. Esa distinción facilita deshacer cambios y mantener una salida reproducible.

Contexto y enlaces del autor

El tema se relaciona con las funciones declaradas públicamente de CanvasLab AI: Editor de Fotos, una aplicación Android de AppInitDev. El código anterior es un ejemplo independiente: no se ha inspeccionado el repositorio privado ni se afirma que sea la implementación interna de la app. La referencia aparece al final para ofrecer contexto, no como requisito para completar el tutorial.

Image APPS

Referencia técnica

Pillow: ImageEnhance