JavascriptProva

mercoledì 19 aprile 2017

Creazione di funzioni separate per la conversione Uri-Path, Path-Bitmap e Bitmap-Stringa

Ora voglio rendere funzione autonoma la conversione del Path in Bitmap e di questa in Stringa.
Innanzitutto che parametro bisogna avere per ottenere il Path dall'Uri restituito da data.getData()?
La funzione deve restituire una String e avere come parametro un Uri.
Proviamo...
    private String UriToPath(Uri foundUri){
        Cursor crs=getApplicationContext().getContentResolver().query(foundUri,null,null,null,null);
        crs.moveToFirst();
        int indice=crs.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
        String s=crs.getString(indice);
        return s;
    }
Dovrebbe funzionare.

Ora vediamo per la trasformazione del Path in Bitmap.
La funzione restituisce Bitmap, e deve avere come parametro Path.
    private Bitmap PathToBitmap(String path){
        Bitmap bmp= BitmapFactory.decodeFile(path);
        return bmp;
    }
C'era un modo per ricavare bmp più piccole e meno pesanti, e su quello mi devo esercitare dopo perché non sono sicuro di ricordarlo a memoria.

Ora la funzione che ha per tipo String e per parametro Bitmap per la trasformazione di Bitmap in una String.
    private String BitmapToString(Bitmap bmp){
        ByteArrayOutputStream stream=new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.JPEG,80,stream);
        byte[] b =stream.toByteArray(b);
        String s= Base64.encodeToString(b,Base64.DEFAULT);
        return s;
    }
Ora mettiamole in sequenza facendo scrivere la sringa in LogCat.
Sì, ho testato funzione per funzione e funzionano tutte.
Potrei tenere una libreria per la conversione, da inserire in ogni mio programma per il quale ce ne fosse l'utilità.

Nessun commento:

Posta un commento