Saltar al contenido principal
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:
Distribuye 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.
Suelta el 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 a ProcessImage 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].
Activa 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

Apunta a 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.
Coloca 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, omite ProcessImage y opcionalmente engine.reset() si la sesión ha terminado. No proceses en el hilo de UI si bloquea la entrada.

Autenticación

Prefiere license_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.