Balance des blancs

 

La classe Camera.Parameters permet de connaître/définir la balance des blancs.

En effet, le rendu de la couleur blanche peut fortement varier suivant le type d'éclairage que les objets subissent (entre une tendance au bleu - couleur froide et rouge - couleur chaude). Cette option permet donc de prendre en considération cet éclairage et de compenser les aberrations obtenues.

 

Mode balance des blancs

Rien de plus simple ! Il s'agit d'indiquer à l'appareil comment corriger les couleurs pour que celles-ci soient plus proche de la réalité.

public void setWhiteBalance (String value) pour changer le mode

Image non trouvée !Déverrouille un setAutoWhiteBalanceLock qui aurait été positionné à vrai.

Image non trouvée !Ne pas oublier d'affecter les nouveaux paramètres à votre instance de Camera pour prendre en compte le nouveau mode ! Cf. exemple plus bas.

Image non trouvée !La balance des blancs n'est pas forcement supportée par l'appareil ! Contrôlez avec la méthode getSupportedWhiteBalance.

 

public String getWhiteBalance () pour connaître le mode

Image non trouvée !null si la balance des blancs est non supportée.

 

Modes supportés

Les valeurs permises dans la classe Camera.Parameters peuvent être les suivantes:

Désignation Code
Mode automatique WHITE_BALANCE_AUTO
Ampoule à incandescence WHITE_BALANCE_INCANDESCENT
Néon à tendance bleu WHITE_BALANCE_FLUORESCENT
Néon à tendance jaune WHITE_BALANCE_WARM_FLUORESCENT
Ensoleillé WHITE_BALANCE_DAYLIGHT
Couvert WHITE_BALANCE_CLOUDY_DAYLIGHT
Crépuscule WHITE_BALANCE_TWILIGHT
Ombragé WHITE_BALANCE_SHADE

Mais la liste des valeurs effectivement supportées sur un appareil sera récupérable de la façon suivante:

public List<String> getSupportedWhiteBalance () qui retourne une liste des modes. Pourra être null si la balance des blancs n'est pas supportée !

 

Automatiser la balance des couleurs

Il peut exister sur l'appareil une détection automatique de la balance des blancs. Il suffit de positionner WHITE_BALANCE_AUTO dans le mode pour qu'un algorithme se débrouille tout seul pour trouver une correction la plus intéressante.

Image non trouvée !Comme c'est automatique, il est fort probable que cela ne marche pas à tous les coups ! Il faudra donc prévoir une possibilité de repasser en manuel dans votre programme pour permettre de choisir l'un des modes prédéfinis.

 

 

Verrouillage de la balance automatique

Les méthodes qui suivent sont disponibles depuis API level 14 -Android 4. Elles permettent de verrouiller l'algorithme de correction automatique des blancs (WHITE_BALANCE_AUTO) pour pouvoir effectuer une série de photos avec toujours les mêmes réglages (exemple pour le bracketing en photographie).

Est-il possible de locker la balance automatique ?

public boolean isAutoWhiteBalanceLockSupported () est une méthode qui indique que l'appareil supporte le vérrouillage de la balance automatique lorsque le résultat retourné est vrai.

 

Bloquer/débloquer le verrouillage de la balance automatique

public void setAutoWhiteBalanceLock (boolean toggle)

En entrée:

toggle à vrai stop la balance automatique, à faux, relance le programme de balance des blancs automatique.

Image non trouvée !Changer manuellement le mode de la balance des blancs aura pour effet de supprimer setAutoWhiteBalanceLock () positionné à vrai auparavant.

Un release() de la caméra fera aussi perdre votre verrouillage.

Image non trouvée !Ne pas verrouiller la balance automatique après un open() et avant le startPreview().

Image non trouvée !Ne pas oublier d'affecter les nouveaux paramètres à votre instance de Camera pour prendre en compte le nouveau mode ! Cf. exemple plus bas.

 

Connaître l'état bloqué ou non de la balance automatique

public boolean getAutoWhiteBalanceLock ()

 

Exemple de code

Où camera est une instance de Camera.