Skip to content
LiebeBlackPublic

About

Visor de imágenes nativo para Windows desarrollado en C++ y Win32 API, con interfaz acrílica moderna (Glassmorphism), renderizado de alta fidelidad mediante GDI+, WIC y stb_image, soporte para múltiples formatos y consumo optimizado de recursos (RAM ≤ 80MB).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ARTPICST

Visor de imágenes premium nativo para Windows (C++ / Win32) con interfaz acrílica moderna, renderizado de máxima fidelidad (GDI+, WIC, stb_image), orientación EXIF automática, soporte para transparencias y consumo ultra-ligero de recursos (RAM ≤ 80MB).

⬇ Descargar el instalador autocontenido · ZIP portable · Web y documentación · Arquitectura del auto-actualizador

🎨 Características Premium

  • Interfaz Glassmorphism/Acrílica: Diseño moderno con efectos de transparencia, blur premium y colores vibrantes inspirados en Windows 11
  • Renderizado de Máxima Calidad: Interpolación bicúbica de alta precisión con modo de envoltura clamp y modo 1:1 pixel-perfect
  • Ultra-Claridad HDR: Modo de realce de detalles finos y micro-contraste
  • Zoom Extendido Ultra Suave: Animación logarítmica sin saltos, pivote bajo el cursor, sin recentrado ni límites prácticos (0.5%–51200%), con nitidez píxel-perfecto en escalas enteras
  • Fondo Ajedrezado Inteligente: Visualización clara de transparencias en PNG, WebP, ICO y GIF
  • Orientación EXIF Automática: Detecta y corrige la orientación de fotos de móviles y cámaras
  • Navegación Avanzada: Flechas ↑↓ para zoom, ←→ para imágenes, arrastrar para pan
  • Instalador Autocontenido: Wizard GDI+ pitch-black con consola de log en vivo y payload incrustado (un solo .exe distribuible)
  • Auto-Actualizador Integrado: Comprueba GitHub Releases una vez al día en segundo plano, notifica con una ventana flotante y actualiza con un clic (descarga verificada por SHA-256)
  • Consumo Ultra-Ligero: Huella de memoria optimizada (RAM < 80 MB, CPU ~0%)

🚀 Formatos Soportados

  1. stb_image: JPG, PNG, BMP, GIF, TGA, PSD, HDR, PIC, PNM/PPM/PGM
  2. WIC (Windows Imaging Component): TIFF, ICO, WebP, HEIC/HEIF, AVIF, JPEG-XR/WDP y RAW (CR2, NEF, ARW, DNG, etc.)
  3. GDI+: TIFF, EMF, WMF y códecs del sistema

⌨️ Controles y Atajos

Acción Atajo
Navegación
Siguiente imagen →, Espacio, botón ▶
Imagen anterior ←, Retroceso, botón ◀
Zoom in ↑, Rueda arriba, +
Zoom out ↓, Rueda abajo, -
Pausar / reproducir GIF P
Primera / última Inicio / Fin
Visualización
Ajustar a ventana F o botón Ajustar
Tamaño real (100%) 1 o 0
Pantalla completa F11 o doble clic (ESC para salir)
Transformaciones
Rotar 90° R (Shift+R antihorario)
Volteo horizontal H
Volteo vertical V
Efectos
Ultra-Claridad HDR D
Escala de grises G
Invertir colores N
Sistema
Modo presentación F5
Eliminar a papelera Supr
Mostrar en Explorador Ctrl + E
Copiar imagen Ctrl + C
Copiar ruta Ctrl + Shift + C
Abrir archivo Ctrl + O
Abrir carpeta Ctrl + Shift + O
Otros
Panorámica (Pan) Clic izquierdo + arrastrar
Menú contextual Clic derecho
Ayuda F1

🔧 Compilación

Opción 1: PowerShell (Recomendado)

powershell -ExecutionPolicy Bypass -File build.ps1

Opción 2: Batch

build.bat

Opción 3: Makefile (Git Bash / MSYS2 / MinGW-w64)

make            # pipeline completo
make test       # tests + gate de política SIMD
make bench      # banco de kernels (ns/píxel y ancho de banda)

Opción 4: MinGW (alternativa)

build_mingw.bat

Verificación de calidad

powershell -ExecutionPolicy Bypass -File scripts\verify.ps1 -Bench

Todos los pipelines fijan el baseline SIMD con /arch:SSE4.2 (MSVC) o -msse4.2 (MinGW) y ejecutan tests/check_simd_policy.py, que falla el build si aparece cualquier token capaz de activar AVX o si las identidades enteras del núcleo de imagen dejan de ser exactas.

Los tres scripts compilan y ejecutan además la suite de tests y fuzzing (tests\image_core_test.cpp para el núcleo SIMD/LUT y tests\release_json_fuzzer.cpp para el parser JSON del actualizador) como paso [3b/5], junto con el selftest del updater — cualquier fallo aborta el build antes de empaquetar. Ver BUILD.md para ejecutarlos por separado.

📦 Archivos Generados

Después de la compilación exitosa en dist\:

  • artpicst.exe - Programa principal premium (visor)
  • artpicst_updater.exe - Módulo de auto-actualización
  • artpicst_installer.exe - Instalador autocontenido (incrusta visor + updater + icono + README como recursos RCDATA)
  • artpicst.ico - Icono de la aplicación
  • version.json - Información de versión

El asset oficial de release es artpicst-installer.exe (el instalador autocontenido renombrado): es el archivo exacto que el auto-actualizador descarga e instala. El workflow de CI (.github/workflows/release.yml) lo publica junto a artpicst-portable.zip.

💻 Uso por Línea de Comandos

artpicst.exe
artpicst.exe "C:\Fotos"
artpicst.exe "C:\Fotos\imagen.jpg"
artpicst.exe --maximized "C:\Fotos"
artpicst.exe --fullscreen "C:\Fotos"
artpicst.exe --register
artpicst.exe --unregister

El módulo de actualización también se puede usar directamente:

artpicst_updater.exe --check          # buscar actualizaciones (interactivo)
artpicst_updater.exe --forced         # forzar comprobación ignorando el límite diario
artpicst_updater.exe --background     # chequeo silencioso (1 vez al día)
artpicst_updater.exe --selftest       # autotest (parser JSON, SHA-256, comparador de versiones)

El instalador también admite modo desatendido (sin ventanas, con exit codes para scripts y CI):

artpicst_installer.exe --silent                       # instalación desatendida
artpicst_installer.exe --silent --dir "C:\MiCarpeta"  # a una ruta concreta
artpicst_installer.exe --silent --uninstall           # desinstalación desatendida

Exit codes: 0 OK · 1 fallo genérico (con rollback) · 2 payload incompleto · 3 archivos en uso (cerrar ARTPICST y reintentar).

🔄 Auto-Actualización

  1. El visor lanza artpicst_updater.exe --background como máximo una vez al día (hilo en segundo plano, la UI nunca se bloquea).
  2. El updater consulta https://api.github.com/repos/LiebeBlack/Pic/releases/latest y compara la versión local con la publicada (soporta prefijos v, sufijos y números de más de un dígito).
  3. Si hay versión nueva, muestra una notificación flotante minimalista con Instalar actualización ahora / Recordar más tarde y opción de instalar automáticamente futuras versiones (si se activa, los chequeos diarios descargan e instalan en silencio).
  4. Al aceptar: descarga artpicst-installer.exe con progreso real, verifica su hash SHA-256 y lo ejecuta con --update <payload> --dir <dir>.
  5. El instalador sustituye los archivos, cierra el visor si sigue abierto y lo reinicia.

Sin conexión, con rate-limit de la API o si el servidor falla, el updater permanece en silencio: nunca interrumpe el uso del visor.

🏗️ Arquitectura

  • Main Program: C++23 nativo con Win32 API, GDI+, WIC, stb_image (ultra-optimizado); baseline SIMD SSE4.2 sin AVX
  • Installer (installer/): wizard GDI+ autocontenido; extrae su payload RCDATA, instala con elevación UAC, rollback y modo silencioso --update; la instalación muestra 10 fases técnicas con consola de log en vivo
  • Updater (updater/): módulo independiente con WinHTTP que consulta releases/latest en GitHub, compara versiones, verifica SHA-256 y encadena la instalación
  • Viewer ↔ Updater (src/updater_client.hpp): chequeo diario en segundo plano y menú "Buscar actualizaciones..."

📋 Requisitos

  • Windows 10/11 (x64)
  • CPU con SSE4.2 — Intel Nehalem / AMD Bulldozer (2008) o posterior. Los tres binarios se compilan con baseline SSE4.2 y AVX/AVX2/AVX-512 están prohibidos por diseño; el instalador verifica esta capacidad antes de instalar. Ver docs/PERFORMANCE.md.
  • Visual Studio 2022 con C++ (o MinGW-w64 con GCC 13+)
  • Git (para clonar el repositorio)
  • Python 3 (solo para el gate de política SIMD y el icono)

📚 Documentación técnica

📄 Licencia

Este software es proporcionado tal cual, sin garantía de ningún tipo.

🤝 Contribuciones

Las contribuciones son bienvenidas. Por favor:

  1. Fork el repositorio
  2. Crea una rama para tu feature
  3. Commit tus cambios
  4. Push a la rama
  5. Abre un Pull Request

📞 Soporte

Para problemas o sugerencias, abre un issue en GitHub.

About

Visor de imágenes nativo para Windows desarrollado en C++ y Win32 API, con interfaz acrílica moderna (Glassmorphism), renderizado de alta fidelidad mediante GDI+, WIC y stb_image, soporte para múltiples formatos y consumo optimizado de recursos (RAM ≤ 80MB).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages