SDK 2.0.0. Enumeraciones: Enumeraciones de parámetros.
Apunta resource_path a resource.fbd
Los motores de escritorio abren el paquete con fopen. Pasa el archivo, no una carpeta:
resource.fbd junto a la app (o bajo un directorio de assets) y resuelve una ruta absoluta al arrancar.
Un motor, ProcessImage serial
Create devuelve un motor para la sesión, no un singleton de proceso. ImageFrame y el motor no son thread-safe. Serializa ProcessImage y los setters que mutan en un solo hilo.
- Crea el motor y procesa en el hilo cuyo contexto GL es el actual. Las texturas de entrada y salida deben pertenecer a ese contexto. Los fotogramas de CPU no necesitan un contexto GL del llamador. La config no tiene un flag de contexto.
shared_ptr cuando termine la sesión de cámara. Recrear el motor en cada fotograma es costoso (licencia + init).
FrameType en el fotograma
Configura frame->type antes de ProcessImage.
Fotos grandes (vista previa y exportación)
No envíes píxeles a resolución completa aProcessImage en cada movimiento del deslizador, ni tires el original después de escalar.
Al abrir la foto, conserva el búfer completo y crea un fotograma de vista previa (lado largo unos 1280–1440). Los ajustes procesan la vista previa (FrameType::Image). La exportación procesa un fotograma a resolución completa con los mismos setters. El tamaño de salida coincide con la entrada. La cámara sigue en resolución de captura + FrameType::Video.
Intensidades
Empieza bajo en tiempo real. El remodelado es[-1.0, 1.0]; las demás intensidades son [0.0, 1.0].
SetBeautySkinOnly(true) para que el suavizado / blanqueamiento se queden en la piel.
Filtros y stickers
Pasa rutas o bytes.fbd. Los cambios entran en vigor en el siguiente ProcessImage. Evita cambiar filtro/sticker en cada fotograma.
Supervisar con GetStats
avg_process_time_ms por debajo de tu presupuesto de fotograma (unos 33 ms a 30 fps). Prefiere 720p para vista previa; usa FrameType::Image para exportar estáticos.
Contexto OpenGL
- Crea el motor y procesa en el hilo cuyo contexto GL es el actual. Las texturas de entrada y salida deben pertenecer a ese contexto. Los fotogramas de CPU no necesitan un contexto GL del llamador. La config no tiene un flag de contexto.
facebetter.dll junto al .exe (o en PATH). Enlaza facebetter.lib en tiempo de compilación.
Pausar cuando está inactivo
Cuando la ventana está minimizada o la cámara se detiene, omiteProcessImage y opcionalmente engine.reset() si la sesión ha terminado. No proceses en el hilo de UI si bloquea la entrada.
Autenticación
Prefierelicense_token para redes sin conexión / restringidas. En caso contrario, app_id + app_key v2 en línea. No hardcodees claves de producción en repos públicos: cárgalas desde configuración. Consulta Autenticación y licencia.
