My MYSQL db contains 5 rows
id, name, username, password, email, image
The image type is BLOB.
My PHP codes below to get JSON data from MYSQL.
while($row = mysqli_fetch_array($res)){
array_push($result,
array('id'=>$row[0],
'name'=>$row[1],
'username'=>$row[2],
'password'=>$row[3],
'email'=>$row[4],
'image'=>$row[5])
));
}
echo json_encode(array("result"=>$result));
My application will load longer than expected to parse the base64 image string from the returned JSON.
So what's the best way to store and retrieve image file efficiently?
I had a similar problem. So I avoided storing images in MySql. I am storing them in the server as image files and using picasso to show the images. Its super easy to transform and use.
Assuming your Above code is correct and you are getting base64
as image you can simply do this
while($row = mysqli_fetch_array($res)){
array_push($result,
array('id'=>$row[0],
'name'=>$row[1],
'username'=>$row[2],
'password'=>$row[3],
'email'=>$row[4],
'image'=>$row[5])
));
}
echo json_encode(array("result"=>$result));
on Android side you can do some thing like this to convert it to image.
byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
Convert base64 string to Image in Java taken as reference