我正在尝试将一些图像保存到 Web 服务器。所以我所做的就是将我在 android 中的文件转换为 Base64 字符串,将其发送到我的服务器并将 Base64 字符串保存在我的数据库中。当我需要时,我从该数据库中读取字符串并对其进行解码。但是我的图像有一些问题,因为图像都是灰色的。
这是我将图像转换为 base64 的代码:
BitmapFactory.Options options = new BitmapFactory.Options();
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath(), options);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int imageWidth = options.outWidth;
if (imageWidth > widthPixels) {
myBitmap.compress(Bitmap.CompressFormat.JPEG, 50, byteArrayOutputStream);
} else {
myBitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
}
byte[] byteArray = byteArrayOutputStream.toByteArray();
String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
然后我将字符串“encoded”发送到服务器并将其保存在数据库中。
这是我保存在服务器中的图像的一部分
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkz ODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2Nj
出于某种原因,有一些“\ n”,我认为这导致了我的问题。我已经尝试使用 replaceAll 删除它们,但没有奏效。
这是我得到的输出
这是我的数据库结构:
我将编码的 64base 图像保存为名为“imagemBase”的列中的字符串。问题可能出在我正在使用的类型或编码中吗?