在我的Android应用程序中我捕获图像或从库中选择图像。 然后我在base64字符串中编码该图像。 然后我以JSON格式或普通的帖子请求将该图像发送给PHP。 然后我将base64字符串解码为PNG图像并保存在服务器上。 然后将该图像的路径保存到mySQL image_url列。
这是我现在正在使用的方式..它创建图像文件..但有时它会创建损坏的图像文件(全黑或0 KB或20 KB大小)。而毕加索不适用于此类文件。它显示了毕加索的解码器失败错误。
这种方式将图像质量降低1.5 MB图像(在设备上)到50 KB图像(在服务器上)。我编码为base64的代码是,
` // method for bitmap to base64
public static String encodeTobase64(Bitmap image) {
Bitmap immage = image;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
immage.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] b = baos.toByteArray();
String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT);
return imageEncoded;
}`
如果有人有建议请帮忙。或其他方式发送和保存图像。
欢迎编辑。
答案 0 :(得分:1)
这是一个很好的做法“如果”你将图像保存为数据库中的字符串,但是因为你将图像转换回png并只保存mysql中的路径(这是一个非常好的做法),所以有意义转换为base64。
我已经构建了一个Web应用程序以及显示/存储多个图像的移动应用程序。我建议,不要编码,只是以块的形式发送图像,你的PHP代码将组合这些块,创建一个图像文件并将图像的文件路径存储在数据库中(image_url)。