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);
}
}
यह एक बहुत पुराना धागा है, लेकिन इस जवाब को साझा करने के लिए सोचा गया क्योंकि बिट्टमैप फैक्ट्री 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);