Ciao a tutti =)
Come da titolo avrei necessità di prendere un'immagine dalla fotocamera e poi analizzarla pixel per pixel.
Sono riuscito, seguendo qualche tutorial, a creare un'anteprima di quello che la fotocamera sta vedendo in quel momento e a fare uno shoot premendo un tasto. Ma ho parecchi dubbi, nello specifico:
1) perchè quando faccio lo shoot l'anteprima si blocca? Nel senso che mi mostra quello a cui ho fatto la foto, non si muove più. Devo ricreare la preview?
2) nella funzione chiamata allo scatto
codice:
public void onPictureTaken(byte[] data, Camera camera) {
l'array di byte cosa contiene? Perchè leggendo un po mi pare di aver capito che contiene i byte della codifica YCrCb, però non riesco a capire come possano essere nell'ordine dei 100.000 elementi quando chiedendo la risoluzione alla camera, questa mi ritorna 640x480 che sono circa 300.000 pixel
Infatti usando poi una funzione trovata qui:
Issue 823 - android - byte[] image data in onPreviewFrame is currently useless - Android - An Open Handset Alliance Project - Google Project Hosting
da errore "array out of bound"
A me andrebbe bene anche il formato con la luminanza e crominanza, ma non sono riuscito a capire la frase
If you only need grayscale information, the first (width *
height) bytes of the preview are provided as unsigned byte intensities
Nello specifico come posso prendere i primi width*height bytes se ne ho meno di quel valore???