2017-06-26 6 views
1

Je travaille sur une application caméra en utilisant l'API Camera2. Je suis capable de capturer un RAW (fichier .dng) et jpg. J'ai vu qu'il est possible de prendre une photo PNG sur l'application Camera FV-5 et je voudrais faire la même chose. Je suis capable d'obtenir le ByteBuffer du RAW et la valeur RVB individuelle de chaque pixel (si cela aide ...). La capture PNG est importante car je veux rendre cette fonctionnalité possible, j'ai donc quelque chose entre RAW et JPEG (RAW est trop grand, JPEG compresse trop, PNG est un format de compression sans perte). Merci!Camera2 PNG capture

+1

S'il vous plaît essayer d'inclure un _question_ dans votre question. Où est ton problème? Qu'avez-vous essayé jusqu'à présent? Pouvez-vous ajouter du code source? – ventiseis

+0

Les applications de l'appareil photo qui permettent d'enregistrer du PNG font actuellement un tour simple, elles convertissent par programme le JPEG obtenu à partir de la capture en PNG, rien de plus. Et donc, pour convertir l'image en PNG, vous devrez décoder le JPEG dans un bitmap, puis enregistrez-le au format PNG. Pas la façon la plus élégante d'offrir l'option PNG aux utilisateurs, mais c'est le mécanisme actuel existant. – PerracoLabs

Répondre

1

Si vous avez le bitmap, qu'il sonne comme vous le faites, vous pouvez l'enregistrer au format PNG:

OutputStream imageStream = new FileOutputStream("yourImage.png"); 
yourImageBitmap.compress(CompressFormat.PNG, 100, imageStream); 
imageStream.close();