Ich benutze den unten stehenden Code, um ein Bild mit der Kamera zu machen. Anstatt es zu speichern, möchte ich es in Base64
codieren und danach an eine andere API als Eingabe übergeben. Ich kann keine Methode sehen, wie man Code ändert, um Bilder in Base64
anstelle von normalen Dateien zu machen.Bild aufnehmen und in Base64 konvertieren
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");
}
}
}
Ich versuche, Code zu verwenden, unten, um ein Bild zu Base64
zu konvertieren.
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);
}
oben beschrieben sollte ein viel direkterer und einfacherer Weg, als Bild gespeichert werden und danach für Bild suchen, um es zu kodieren.
'Ich versuche, Code zu verwenden, unten, um ein Bild zu Base64 konvertieren '. Nein, dieser Code dient zum Konvertieren einer Bitmap in base64. Und Sie haben eine JPG-Datei. Keine Bitmap – greenapps
'newfile.createNewFile();'. Entferne das. Die Kamera-App erstellt die Datei. – greenapps
'nehmen Sie Bilder in Base64 anstelle von normalen Dateien auf'. ?? Man kann Base64 nicht mit einer Datei vergleichen. – greenapps