Ziel meines Programms ist es, ein Bild von SD-Karte, übergeben Sie es zu einer Funktion in der Klasse CombinePhotos (zusammen mit einem anderen Bild) und diese Funktion wird eines der beiden Bilder vom Typ Bitmap zurückgeben. Ich muss es mit dem auf der SD-Karte überschreiben. Das Folgende ist mein Code, aber es stürzt die ganze Zeit ab. Bitte hilf mir.Image Overwriting Android Studio
private void combinePhotos() throws IOException {
CombinePhotos combinePhotos = new CombinePhotos();
Bitmap bm1 = BitmapFactory.decodeFile(Environment.getExternalStorageState() + "/GeoOverlay/pic.jpg");
Bitmap bm2 = BitmapFactory.decodeResource(this.getResources(), R.drawable.sample);
Bitmap bmFinal = combinePhotos.combine(bm1, bm2);
File newFile = new File(Environment.getExternalStorageDirectory()+"/GeoOverlay/pic.jpg");
FileOutputStream bos = new FileOutputStream(Environment.getExternalStorageDirectory()+"/GeoOverlay/pic.jpg");
bmFinal.compress(Bitmap.CompressFormat.PNG,85,bos);
bos.flush();
bos.close();
}
Log:
08-04 16:12:29.982 2888-5972/com.garnet.dany.geooverlay E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: mounted/GeoOverlay/pic.jpg: open failed: ENOENT (No such file or directory)
08-04 16:12:30.652 2888-5972/com.garnet.dany.geooverlay E/AndroidRuntime: FATAL EXCEPTION: Camera Background
Process: com.garnet.dany.geooverlay, PID: 2888
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference
at com.garnet.dany.geooverlay.CameraClass.combinePhotos(CameraClass.java:262)
at com.garnet.dany.geooverlay.CameraClass.access$200(CameraClass.java:53)
at com.garnet.dany.geooverlay.CameraClass$5.onImageAvailable(CameraClass.java:201)
at android.media.ImageReader$ListenerHandler.handleMessage(ImageReader.java:648)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
08-04 16:12:30.702 2888-2888/com.garnet.dany.geooverlay E/AndroidCameraApi: onPause
Warum stürzt es ab? Hast du ein Crashlog? – babadaba
Ja, aber davon kann ich nichts verstehen. – DanielJames
Können Sie es bitte in Ihrer Frage oben bearbeiten? Vielleicht werden andere Leute es verstehen. – babadaba