Skip to main content
SDK 2.0.0. A API C++ é compartilhada com o Linux. Enums: Enums de parâmetros.

Aponte resource_path para resource.fbd

Os mecanismos desktop abrem o pacote com fopen. Passe o arquivo, não uma pasta:
Envie resource.fbd junto com o app (ou em um diretório de assets) e resolva um caminho absoluto na inicialização.

Um mecanismo, ProcessImage serial

BeautyEffectEngine é criado com Create e não é um singleton. Mantenha uma instância para a sessão. ImageFrame e o mecanismo não são thread-safe — serialize ProcessImage em um único worker (ou no thread GL quando external_context = true).
Solte o shared_ptr quando a sessão da câmera terminar. Recriar o mecanismo a cada quadro é caro (licença + init).

FrameType no quadro

Defina frame->type antes de ProcessImage.

Stills grandes (prévia e exportação)

Não envie pixels em resolução total para ProcessImage a cada movimento do slider, nem descarte o original depois de reduzir. Ao abrir a foto, mantenha o buffer completo e crie um quadro de prévia (lado longo cerca de 1280–1440). Ajustes processam a prévia (FrameType::Image). A exportação processa um quadro em resolução total com os mesmos setters. O tamanho da saída acompanha a entrada. A câmera continua na resolução de captura + FrameType::Video.

Intensidades

Comece baixo em tempo real. A remodelagem é [-1.0, 1.0]; as outras intensidades são [0.0, 1.0].
Ative SetBeautySkinOnly(true) para que suavização / clareamento fiquem na pele.

Filtros e adesivos

Passe caminhos ou bytes .fbd. As alterações passam a valer no próximo ProcessImage. Evite trocar filtro/adesivo a cada quadro.

Monitorar com GetStats

Mire avg_process_time_ms abaixo do orçamento de quadro (cerca de 33 ms a 30 fps). Prefira 720p para a prévia; use FrameType::Image para exportação de still.

Contexto OpenGL

Coloque facebetter.dll ao lado do .exe (ou no PATH). Vincule facebetter.lib na compilação.

Pausar quando ocioso

Quando a janela estiver minimizada ou a câmera parar, pule ProcessImage e opcionalmente engine.reset() se a sessão tiver acabado. Não processe no thread de UI se isso bloquear a entrada.

Autenticação

Prefira license_token para redes offline / restritas. Caso contrário, app_id + app_key online v2. Não hardcode chaves de produção em repositórios públicos — carregue da configuração. Veja Autenticação e licença.