Bin aus einem Bild kodiert Android mit diesem Code base64:wie zu dekodieren und kodieren base64 Bild, ohne die Qualität zu verlieren und die Größe
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 90, stream); //compress to which format you want.
byte [] byte_arr = stream.toByteArray();
image_str = Base64.encodeToString(byte_arr, Base64.DEFAULT);
und als es in MySQL-Datenbank einfügen, als es mit PHP dekodieren mit diesem Code:
$filename_path = md5(time().uniqid()).".jpeg";
$decoded=base64_decode($image_str);
file_put_contents("uploads/".$filename_path,$decoded);
//echo '<img src="uploads/".$filename_path"/>';
echo '<img src="uploads/'.$filename_path.'"/>';
es ist alles in Ordnung arbeiten kann ich das Bild sehen, und es gibt keine Fehler, aber das Problem ist, wie etwa 80% der Qualität und die Größe verlöre, wie ich das bitte beheben können.
Es ist nicht die Bildqualität beeinträchtigen sollte. Ich würde in diese 'bmp.compress (Bitmap.CompressFormat.PNG, 90, stream) schauen;' - Ich denke '90' gibt es eine Qualitätseinstellung. Versuchen Sie es auf 100 einzustellen und drehen Sie es herunter, je nachdem, welche Qualität/Dateigröße für Sie akzeptabel ist. – JimL
komprimieren Sie das Bild nicht –
Stick mit dem ursprünglichen 'Png'-Format, das eine verlustfreie Komprimierung verwendet. In dem Moment, in dem Sie eine "jpg" -Komprimierung verwenden, verlieren Sie die Qualität. – arkascha