camfocus 0.0.7 copy "camfocus: ^0.0.7" to clipboard
camfocus: ^0.0.7 copied to clipboard

unlisted

A Flutter plugin to control the camera's focus distance, autofocus, and zoom levels (0.5x, 1x, etc.) on Android devices.

CamfocusPlugin #

CamfocusPlugin é uma biblioteca Flutter para controlar a câmera do dispositivo utilizando APIs nativas do Android. Com essa biblioteca, você pode ajustar manualmente o foco, controlar o zoom, capturar imagens e pré-visualizar a câmera dentro do seu aplicativo Flutter.

Funcionalidades #

  • Pré-visualização da Câmera: Exibe a imagem da câmera dentro de um TextureView.
  • Ajuste Manual do Foco: Define a distância de foco da câmera manualmente.
  • Foco Automático: Ativa ou desativa o foco automático.
  • Controle de Zoom: Ajusta o nível de zoom da câmera.
  • Captura de Imagem: Tira fotos e salva no armazenamento externo do dispositivo.

Instalação #

  1. Adicione a biblioteca ao seu projeto Flutter: Adicione a dependência ao arquivo pubspec.yaml:

    dependencies:
      camfocus: ^1.0.0
    
  2. Configure o AndroidManifest.xml: No seu projeto Flutter, adicione as seguintes permissões ao arquivo AndroidManifest.xml:

    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    
  3. Configuração mínima do SDK: Verifique se você definiu o nível mínimo de SDK para 21 no arquivo android/app/build.gradle:

    defaultConfig {
        minSdkVersion 21
    }
    

Utilização #

1. Pré-visualização da Câmera #

Para exibir a pré-visualização da câmera no seu aplicativo Flutter, adicione um PlatformView em sua interface:

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

class CameraPreviewWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      height: 400,
      child: AndroidView(
        viewType: 'camfocus_preview',
        creationParamsCodec: StandardMessageCodec(),
      ),
    );
  }
}

2. Ajuste Manual do Foco #

Você pode ajustar a distância de foco da câmera utilizando o método setFocusDistance. O valor da distância é fornecido em metros (float).

import 'package:flutter/services.dart';

class CameraController {
  static const platform = MethodChannel('camfocus');

  Future<void> setFocusDistance(double distance) async {
    try {
      await platform.invokeMethod('setFocusDistance', {'distance': distance});
    } catch (e) {
      print("Erro ao ajustar o foco: $e");
    }
  }
}

3. Ativar/Desativar o Foco Automático #

Use o método setAutoFocus para ativar ou desativar o foco automático da câmera:

Future<void> setAutoFocus(bool enabled) async {
  try {
    await platform.invokeMethod('setAutoFocus', {'enabled': enabled});
  } catch (e) {
    print("Erro ao ajustar o foco automático: $e");
  }
}

4. Ajuste de Zoom #

Você pode ajustar o zoom da câmera utilizando o método setZoom. O valor de zoom deve ser um float, onde 1.0 é o zoom padrão.

Future<void> setZoom(double zoomFactor) async {
  try {
    await platform.invokeMethod('setZoom', {'zoomFactor': zoomFactor});
  } catch (e) {
    print("Erro ao ajustar o zoom: $e");
  }
}

5. Captura de Imagem #

Para capturar uma imagem e salvá-la no armazenamento externo, use o método takePicture. A função retorna o caminho do arquivo salvo:

Future<String?> takePicture() async {
  try {
    final String? imagePath = await platform.invokeMethod('takePicture');
    return imagePath;
  } catch (e) {
    print("Erro ao capturar imagem: $e");
    return null;
  }
}

6. Verificar se a Câmera está Pronta #

Para verificar se a câmera já foi inicializada e está pronta para uso, utilize o método isCameraReady:

Future<bool> isCameraReady() async {
  try {
    final bool isReady = await platform.invokeMethod('isCameraReady');
    return isReady;
  } catch (e) {
    print("Erro ao verificar o estado da câmera: $e");
    return false;
  }
}

API de Métodos #

Método Descrição Parâmetros
setFocusDistance Ajusta a distância de foco da câmera (manual). distance (float): distância de foco em metros.
setAutoFocus Ativa ou desativa o foco automático. enabled (bool): true para ativar o foco automático, false para desativar.
setZoom Ajusta o nível de zoom da câmera. zoomFactor (float): nível de zoom, onde 1.0 é o valor padrão.
takePicture Captura uma imagem e salva no armazenamento externo. Nenhum. Retorna o caminho da imagem capturada.
isCameraReady Verifica se a câmera foi inicializada e está pronta. Nenhum. Retorna true se a câmera estiver pronta, false caso contrário.

Requisitos #

  • Flutter 2.0+
  • Android SDK 21+
  • Permissões: A câmera requer permissões de câmera e armazenamento para funcionar corretamente.

Contribuindo #

Se você quiser contribuir para o desenvolvimento da biblioteca, sinta-se à vontade para abrir issues ou pull requests no repositório.

Licença #

Esta biblioteca está licenciada sob a licença MIT. Para mais informações, consulte o arquivo LICENSE.

0
likes
0
points
128
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin to control the camera's focus distance, autofocus, and zoom levels (0.5x, 1x, etc.) on Android devices.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on camfocus

Packages that implement camfocus