Prendre des photos et de les convertir en Base64

J'utilise le code ci-dessous pour faire une photo avec l'appareil photo. Au lieu de l'enregistrer, je voudrais coder à Base64 et après que le passer à une autre API comme une entrée. Je ne peux pas voir la méthode, comment modifier le code pour prendre des photos dans Base64 au lieu des fichiers ordinaires.

public class CameraDemoActivity extends Activity {
    int TAKE_PHOTO_CODE = 0;
    public static int count = 0;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final String dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/picFolder/";
        File newdir = new File(dir);
        newdir.mkdirs();

        Button capture = (Button) findViewById(R.id.btnCapture);
        capture.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                count++;
                String file = dir+count+".jpg";
                File newfile = new File(file);
                try {
                    newfile.createNewFile();
                }
                catch (IOException e)
                {
                }

                Uri outputFileUri = Uri.fromFile(newfile);

                Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);

                startActivityForResult(cameraIntent, TAKE_PHOTO_CODE);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == TAKE_PHOTO_CODE && resultCode == RESULT_OK) {
            Log.d("CameraDemo", "Pic saved");
        }
    }
}

J'essaie d'utiliser le code ci-dessous pour convertir une image en Base64.

public static String encodeToBase64(Bitmap image, Bitmap.CompressFormat compressFormat, int quality)
{
    ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream();
    image.compress(compressFormat, quality, byteArrayOS);
    return Base64.encodeToString(byteArrayOS.toByteArray(), Base64.DEFAULT);
}

Décrit ci-dessus devrait être beaucoup plus direct et le plus simple de la façon que l'enregistrement de l'image et après que la recherche de l'image à encoder.

I try to use code below to convert an image to Base64. Pas de code pour convertir une image Bitmap en base64. Et vous avez une .fichier jpg. Pas de bitmap.
newfile.createNewFile();. Supprimer ce. L'application Appareil photo va créer le fichier.
take pictures in Base64 instead of regular files. ?? On ne peut pas comparer base64 avec un fichier.

OriginalL'auteur plaidshirt | 2016-03-23