android - किसी छवि दृश्य में इसे दिखाने के लिए बेस 64 स्ट्रिंग को बिटमैप छवि में कैसे परिवर्तित करें?




base64 imageview (3)

मेरे पास बेस 64 स्ट्रिंग है जो बिटमैप छवि का प्रतिनिधित्व करती है।

मुझे अपने एंड्रॉइड ऐप में एक छवि दृश्य पर इसका उपयोग करने के लिए उस स्ट्रिंग को बिटमैप छवि में दोबारा बदलने की जरूरत है

यह कैसे करना है?

यह वह कोड है जिसका उपयोग मैं छवि को बेस 64 स्ट्रिंग में बदलने के लिए करता हूं:

//proceso de transformar la imagen BitMap en un String:
//android:src="c:\logo.png"
Resources r = this.getResources();
Bitmap bm = BitmapFactory.decodeResource(r, R.drawable.logo);
ByteArrayOutputStream baos = new ByteArrayOutputStream();  
bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object   
byte[] b = baos.toByteArray();
//String encodedImage = Base64.encode(b, Base64.DEFAULT);
encodedImage = Base64.encodeBytes(b);

आप बस कुछ अन्य अंतर्निहित तरीकों का उपयोग करके अपने कोड को मूल रूप से वापस कर सकते हैं।

byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 

ऑनलाइन जांचने के लिए आप इसका उपयोग कर सकते हैं

http://codebeautify.org/base64-to-image-converter

आप स्ट्रिंग को इस तरह से छवि में परिवर्तित कर सकते हैं

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Base64;
import android.widget.ImageView;

import java.io.ByteArrayOutputStream;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView image =(ImageView)findViewById(R.id.image);

        //encode image to base64 string
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.logo);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
        byte[] imageBytes = baos.toByteArray();
        String imageString = Base64.encodeToString(imageBytes, Base64.DEFAULT);

        //decode base64 string to image
        imageBytes = Base64.decode(imageString, Base64.DEFAULT);
        Bitmap decodedImage = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length);
        image.setImageBitmap(decodedImage);
    }
}

http://www.thecrazyprogrammer.com/2016/10/android-convert-image-base64-string-base64-string-image.html


यह एक बहुत पुराना धागा है, लेकिन इस जवाब को साझा करने के लिए सोचा गया क्योंकि बिट्टमैप फैक्ट्री BitmapFactory.decodeByteArray() के BitmapFactory.decodeByteArray() वापसी को प्रबंधित करने के लिए मैंने अपने विकास के समय को बहुत अधिक लिया है। एनीरुध का सामना करना पड़ा है।

यदि encodedImage स्ट्रिंग एक JSON प्रतिक्रिया है, तो बस Base64.URL_SAFE बजाय Base64.URL_SAFE उपयोग करें

byte[] decodedString = Base64.decode(encodedImage, Base64.URL_SAFE);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);




imageview