How to load image through byte array using Glide?

前端 未结 5 1419
抹茶落季
抹茶落季 2020-12-08 13:46

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)
           


        
相关标签:
5条回答
  • 2020-12-08 14:20

    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);
    
    0 讨论(0)
  • 2020-12-08 14:21

    Kotlin way:

    val imageByteArray = Base64.decode(sampleBase64ImageString, Base64.DEFAULT)
    Glide.with(this).load(imageByteArray).into(imageView)
    
    0 讨论(0)
  • 2020-12-08 14:28

    If you are getting error on .asBitmap() just use it like this

                 Glide.with(this)
                    .asBitmap()
                    .load(imageAsBytes)
                    .into(image)
    
    0 讨论(0)
  • 2020-12-08 14:30

    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);
    
    0 讨论(0)
  • 2020-12-08 14:43

    I do it a bit differently

    byte[] bytes = Glide.with(context)
                            .as(byte[].class)
                            .load(url)
                            .submit()
                            .get();
    

    The bytes are ready for file writing.

    0 讨论(0)
提交回复
热议问题