- Forum-Beiträge: 36
02.11.2020, 21:22:19 via Website
02.11.2020 21:22:19 via Website
Hallo zusammen,
ich schreibe eine App, die Qr-Codes erzeugt und auf dem Display anzeigt, sowie auch den zugehörigen Web-Service, der die Daten dazu verwaltet. Anzeigen eines Qr-Codes auf einem Handy und diesen mit einem anderen Handy einscannen, funktioniert schon.
Jetzt ist der Wunsch, einen erzeugten Qr-Code auch per Mail schicken zu können. Ich müsste also den Qr-Code, der als Bitmap in der App vorhanden ist, als shared File (JPG oder PNG) speichern, dann kann der User seine Mail-App öffnen und eine Mail mit dieser Datei als Attachment schreiben. Ich habe verschiedene Versuche geschrieben:
FileOutputStream fOut = new FileOutputStream(saveFile);
qrcodeBitmap.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
... oder CompressFormat.PNG oder anderer Quality-Wert ...
oder:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
qrcodeBitmap.compress(Bitmap.CompressFormat.JPG, 85, bos);
byte[] bitmapdata = bos.toByteArray();
fos.write(bitmapdata);
Das Ergebnis ist immer, daß eine Datei geschrieben wird, und da ist bei Bitmap.CompressFormat.JPG auch ein Qr-Code-Bild drin; bei PNG ist es nur komplett schwarz oder weiß, je nach Hintergrundfarbe des Layouts, in dem das Bild eingebettet ist.
Bei JPG gelingt es allerdings der serverseitigen Qr-Code-Methode nicht, Qr-Code zu erkennen. Ich habe im Web-Portal eine Upload-Methode, die eine JPG- oder PNG-Datei auf den Server hochlädt; dieser analysiert mit Google Zxing das Bild und ermittelt den enthaltenen Inhalt. Das klappt mit einer PNG-Datei, die ich auf andere Weise erstellt habe, aber trotz etlicher Versuche nicht bei JPG.
Wie kriege ich es hin, die Bitmap in eine lesbare PNG-Datei zu schreiben? Oder wenn ihr eine Idee habt, wie ich Zxing überrede, eine Qr-Code-Datei im JPG-Format zu akzeptieren, wäre das natürlich auch willkommen.
Im voraus vielen Dank
Gerhard