Cómo creé mi propio formato de imagen con Python

AVJ es un formato de imagen en Python que integra metadatos, texto alternativo y embeddings de imagen y texto, sin compresión y con un encabezado fijo, ideal para IA y APIs con FastAPI.

20 sept 2025 • 5 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

En este artículo explico cómo creé mi propio formato de archivo de imagen usando solo Python. El formato se llama AVJ y está orientado a casos de uso de machine learning porque incorpora metadatos, texto alternativo y vectores de embedding tanto del texto como de la imagen.

Estructura general del archivo AVJ: el archivo combina un encabezado fijo con secciones variables. El encabezado almacena metadatos esenciales y los campos variables contienen texto alternativo codificado en UTF-8, dos vectores de embedding en formato de punto flotante y finalmente los bytes crudos de la imagen en RGB sin compresión. El formato de archivo usa la extensión .avj y está pensado para ser simple, reproducible y eficiente en flujos de datos para modelos y APIs.

Campos principales del encabezado y tamaño aproximado en bytes: Magic Number 4 bytes tipo ASCII que identifica el archivo como AVJ1, Version 2 bytes unsigned short para versión del formato, Image Width 4 bytes unsigned int, Image Height 4 bytes unsigned int, Color Mode 1 byte unsigned para indicar representación de color, Alt Text Length 4 bytes unsigned int con longitud en bytes del texto alternativo, Embedding 1 Length 4 bytes unsigned int, Embedding 2 Length 4 bytes unsigned int. El encabezado fijo permite luego leer secciones variables según las longitudes almacenadas.

Conceptos y librerías usadas: para empaquetar y desempaquetar binarios utilizo la librería struct incluida en Python. Para procesar imágenes empleo Pillow y su método tobytes y frombytes. Para manejo de arrays y conversión de embeddings uso numpy. Para generar embeddings de imagen y texto utilizo PyTorch y transformers con el modelo CLIP. Para exponer el servicio como API uso FastAPI, lo que permite subir y descargar archivos de forma sencilla.

Flujo de codificación resumido: se abre la imagen con Pillow y se convierte a RGB; se obtiene la representación de bytes con tobytes y se capturan ancho y alto. El texto alternativo se codifica en UTF-8. Los embeddings se convierten a vectores numpy con tipo float32 y se transforman a bytes. Con struct se empaqueta el encabezado fijo incluyendo las longitudes de las secciones variables. Finalmente se concatena encabezado, texto alternativo codificado, vectores de embedding y bytes crudos de la imagen para generar el archivo .avj final.

Flujo de decodificación resumido: el lector carga los primeros bytes correspondientes al encabezado fijo y con struct desempaqueta los campos; usando las longitudes extrae el texto alternativo y lo decodifica en UTF-8; las secciones de embeddings se convierten desde bytes a arrays numpy con dtype float32; lo que queda después de las secciones variables es la matriz de bytes de la imagen que se reconstruye con Image.frombytes usando ancho, alto y modo. De esta forma se recuperan imagen y metadatos originales de forma determinista.

Sobre embeddings: para generar vectores semánticos de texto e imagen se puede usar el modelo CLIP disponible en transformers. El flujo típico es procesar la imagen y el texto con el processor del modelo, pasar tensores a la GPU si está disponible y obtener embeddings que luego se normalizan y guardan en el archivo AVJ como arrays de float32. Incluir embeddings junto a la imagen facilita búsquedas semánticas, clasificación o pipelines de IA sin tener que recalcular representaciones en cada consulta.

Diseño para APIs: al integrar esto en una API con FastAPI es sencillo crear un endpoint de subida que reciba el archivo original y el texto alternativo, calcule embeddings, empaquete todo en un .avj y devuelva el archivo para descargar. Otro endpoint puede recibir un .avj, decodificarlo y devolver la imagen reconstruida y sus metadatos en JSON. Esta arquitectura es ideal para integraciones en soluciones de visión artificial y motores de búsqueda semántica.

Ventajas del formato AVJ: inclusión nativa de embeddings para despliegues ML, formato no comprimido para acceso directo a bytes RGB, encabezado fijo que facilita lectura por streaming y compatibilidad con herramientas de Python para procesamiento batch y en tiempo real.

En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida que combina experiencia en inteligencia artificial, ciberseguridad y servicios cloud. Ofrecemos soluciones empresariales integrales, desde desarrollo de software a medida hasta despliegues cloud en AWS y Azure. Si buscas potenciar tus productos con IA para empresas y agentes IA contamos con servicios especializados en integración de modelos y pipelines. También apoyamos proyectos de inteligencia de negocio y visualización con Power BI para convertir datos en decisiones estratégicas.

Si tu objetivo es crear una aplicación que incluya almacenamiento optimizado de imágenes con embeddings o desplegar APIs que trabajen con visión y semántica, en Q2BSTUDIO desarrollamos soluciones a medida y podemos ayudarte a implementar tanto la lógica de codificación AVJ como la infraestructura en la nube. Conoce nuestros servicios de software a medida en servicios de desarrollo de aplicaciones y software multicanal y descubre nuestras capacidades en inteligencia artificial en servicios de inteligencia artificial para empresas.

También ofrecemos auditorías y pruebas de seguridad para tus sistemas y pipelines de IA, garantizando buenas prácticas de ciberseguridad y cumplimiento. Si precisas integración con plataformas de inteligencia de negocio o Power BI, contamos con experiencia para conectar modelos de datos y visualizaciones, y optimizar flujos de trabajo con automatización y servicios cloud aws y azure.

Conclusión: crear un formato de imagen propio como AVJ en Python es directo cuando se estructuran cabeceras fijas y se aprovecha la potencia de bibliotecas ya consolidadas. El valor añadido proviene de incluir embeddings en el propio archivo, facilitando aplicaciones de búsqueda semántica, clasificación y despliegues de IA empresariales. En Q2BSTUDIO podemos acompañarte desde la idea hasta la puesta en producción con soluciones de software a medida, aplicaciones a medida, inteligencia artificial, agentes IA, ciberseguridad y servicios cloud.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat