FileInputStream ips = new FileInputStream("capture0.yuv");
Là tu demandes d'ouvrir le fichier "capture0.yuv" à la racine du téléphone, peu de chances qu'il existe donc, et fortes chance de IOException (FileNotFoundException). Voir la documentation android sur le stockage pour plus d'information concernant cartes SD, ressources, ...
1 2
| InputStreamReader ipsr = new InputStreamReader(ips);
BufferedReader bufferedReader = new BufferedReader(ipsr); |
Un reader permet de transfomer en "texte" des octets lus il me semble illusoire qu'une image YUV soit décrite en texte.
byte[] yuvData = bufferedReader.readLine().getBytes();
Donc on lit une ligne de texte (donc on s'arrête au premier \n ou à la fin du fichier), et on la transforme en bytes.... Au passage du coup ce ne sera peut-être même pas les bytes originellement lus. En effet, si la lecture du InputStreamReader est en UTF-8 (1 byte par caractère la plupart du temps), le getBytes() par défaut de String est en UTF-16 (2 bytes par caractères).
YuvImage iuvImage = new YuvImage(yuvData, 20, 640, 280, null);
Le second paramètre (20) me semble étrange, il doit être ImageFormat.XXXXXXX à priori, et non un int sorti de nulle part.
640x280 me semble aussi bizarre... pas évident que ce soit la taille de l'image dans le fichier.
1 2
| Bitmap bitmap = Bitmap.createBitmap(640, 280,Bitmap.Config.ARGB_8888);
bitmap.copyPixelsFromBuffer(ByteBuffer.wrap(iuvImage)); |
Là j'avoue que je ne connait pas.
Partager