作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
正在使用以下代码将图像从 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% 的质量和大小,请问我该如何解决。
最佳答案
我认为如果你制作压缩格式 JPEG
,并将图像质量降低到 50
,那应该可以解决问题:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, baos);
byte [] b = baos.toByteArray();
return Base64.encodeToString(b, Base64.DEFAULT);
关于php - 如何在不损失质量和大小的情况下对base64图像进行解码和编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36384063/
我是一名优秀的程序员,十分优秀!