Ich möchte eine JPG-Datei an meinen Server mit einer Größenbeschränkung von 500KB senden. Diese Datei sollte niemals in den Telefonspeicher geschrieben werden (sie enthält vertrauliche Daten).JPG-Bild in RequestBody komprimieren, ohne eine Datei zu erstellen
Meine Eingabe ist ein Byte-Array von der Kamera zurückgegeben.
Denn jetzt ist das, was ich
public Observable<User> uploadPicture(byte[] pictureBytes) {
RequestBody pictureFormatted = RequestBody.create(MediaType.parse("image/*"), pictureBytes);
MultipartBody.Part picturePart = MultipartBody.Part.createFormData("confidentialPicture", "confidentialPicture.jpg", pictureFormatted);
return api.uploadPicture(picturePart);
}
Wie mache ich meine RequestBody
mit dieser Größe Constraint erstellen? Ich bin in Ordnung mit der Verringerung der Bildqualität.
Wenn Sie also die Bildqualität verringern möchten, dann verwenden Sie 'Bitmap.compress' Methode, richtig? Wenn ja, was ist das Problem? – pskink
@pskink, wenn Sie über [diese Methode] sprechen (https://developer.android.com/reference/android/graphics/Bitmap.html#compress (android.graphics.Bitmap.CompressFormat, int, java.io.OutputStream)) es erfordert einen OutputStream und ich kann nicht finden, wie dies ohne eine Ausgabedatei erreicht wird, die im Telefonspeicher existiert. – Louis
'Wie kann ich mein RequestBody mit dieser Größenbeschränkung erstellen? '. Komische Frage. Du würdest das tun wie du es jetzt tust. Aber wenn 'byte [] pictureBytes' mehr als 500000 Bytes enthält, möchten Sie sie weniger machen. – greenapps