我正在使用以下代码将来自Android的图像编码为Base64:
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);
然后将其插入到MySQL数据库中,再使用该代码用PHP进行解码:
$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.'"/>';
它工作得很好,我可以看到图片并且没有错误,但问题是我失去了大约80%的质量和大小,我该如何解决这个问题。
bmp.compress(Bitmap.CompressFormat.PNG, 90, stream);
- 我猜那里的90
是一个质量设置。尝试将其调整为100,并根据您可接受的质量/文件大小适当降低它。 - JimL