Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to load image through byte array using Glide?

I have an image contents byte[] form. But when i load them through Glide then broken images are shown. what I'm doing is shown below.

Glide.with(context)     .load(imageByteArray)     .asBitmap()     .placeholder(R.drawable.ic_broken)     .into(rowImageView); 

imageByteArray successfully converts to bitmap without using glide. So there is no wrong with image byte array.

Please guide me what I'm missing?

Also I'm using Glide library com.github.bumptech.glide:glide:3.6.1 And Android support library com.android.support:support-v13:23.0.1

Edited

Ok, This is what I'm doing.

String imageBytes = "HVao14fpmtHSev3OgsrQNsawkFzXNcY3BsfQla6..." 

This string above defined is bytes of actual image which I'm receiving from web API.

I'm converting this String into byte array like this

public static byte[] hexStringToByteArray(String s) {         int len = s.length();         byte[] data = new byte[len / 2];         for (int i = 0; i < len; i += 2) {             data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)                     + Character.digit(s.charAt(i+1), 16));         }         return data; } 

Than I'm applying resultant byte array "imageByteArray" to Glide code defined above.

like image 956
Adnan Amjad Avatar asked Jan 04 '16 10:01

Adnan Amjad


People also ask

How do you download pictures from Glide?

To simply load an image to LinearLayout, we call the with() method of Glide class and pass the context, then we call the load() method, which contains the URL of the image to be downloaded and finally we call the into() method to display the downloaded image on our ImageView.


2 Answers

Lets say your base64 string is

String imageBytes = "HVao14fpmtHSev3OgsrQNsawkFzXNcY3BsfQla6..." 

You should convert imageBytes String to array of bytes through

byte[] imageByteArray = Base64.decode(imageBytes, Base64.DEFAULT); 

afterwards pass this imageByteArray to Glide.

Glide.with(context)     .load(imageByteArray)     .asBitmap()     .placeholder(R.drawable.ic_broken)     .into(rowImageView); 
like image 138
Adnan Amjad Avatar answered Sep 28 '22 05:09

Adnan Amjad


You can convert Base64 String to image using the following

Glide.with(context)     .load(Base64.decode(base64ImageString, Base64.DEFAULT))     .asBitmap()     .placeholder(R.drawable.ic_broken)     .into(rowImageView); 
like image 43
Anudeep Samaiya Avatar answered Sep 28 '22 05:09

Anudeep Samaiya