यह उदाहरण दर्शाता है कि Kotlin में Android ऐप में Base64 एन्कोडेड स्ट्रिंग को Bitmap इमेज में कैसे कन्वर्ट किया जाता है।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project, भाषा Kotlin चुनें।
चरण 2: लेआउट XML
res/layout/activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:padding="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Base64 स्ट्रिंग को Bitmap में कन्वर्ट करें"
android:textColor="@android:color/holo_blue_dark"
android:textSize="18sp"
android:textStyle="bold|italic" />
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="16dp"
android:scaleType="centerCrop"
android:contentDescription="डीकोडेड इमेज" />
</LinearLayout>
चरण 3: MainActivity.kt
package com.app.sample
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.os.Bundle
import android.util.Base64
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import java.io.ByteArrayOutputStream
class MainActivity : AppCompatActivity() {
private lateinit var imageView: ImageView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
imageView = findViewById(R.id.imageView)
// 1. Bitmap को Base64 स्ट्रिंग में एन्कोड करें
val bitmap = BitmapFactory.decodeResource(resources, R.drawable.image)
val byteArrayOutputStream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream)
val imageBytes = byteArrayOutputStream.toByteArray()
val imageString = Base64.encodeToString(imageBytes, Base64.DEFAULT)
// 2. Base64 स्ट्रिंग को वापस Bitmap में डीकोड करें
val decodedBytes = Base64.decode(imageString, Base64.DEFAULT)
val decodedBitmap = BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.size)
// 3. ImageView में सेट करें
imageView.setImageBitmap(decodedBitmap)
}
}
उपयोग के मामले
- API रिस्पॉन्स: सर्वर से Base64 एन्कोडेड इमेज प्राप्त करना
- डेटाबेस स्टोरेज: इमेज को स्ट्रिंग के रूप में SQLite/Room में स्टोर करना
- इंटेंट पासिंग: एक्टिविटीज के बीच इमेज पास करना
- कैशिंग: स्ट्रिंग-आधारित कैश में इमेज स्टोर करना
एक्सटेंशन फंक्शन (रीयूजेबल)
// BitmapExtensions.kt
import android.graphics.Bitmap
import android.util.Base64
import java.io.ByteArrayOutputStream
fun Bitmap.toBase64(format: Bitmap.CompressFormat = Bitmap.CompressFormat.PNG, quality: Int = 100): String {
val stream = ByteArrayOutputStream()
this.compress(format, quality, stream)
return Base64.encodeToString(stream.toByteArray(), Base64.DEFAULT)
}
fun String.toBitmap(): Bitmap? {
return try {
val bytes = Base64.decode(this, Base64.DEFAULT)
BitmapFactory.decodeByteArray(bytes, 0, bytes.size)
} catch (e: IllegalArgumentException) {
null
}
}
उपयोग:
// एन्कोड val base64String = bitmap.toBase64() // डीकोड val bitmap = base64String.toBitmap() imageView.setImageBitmap(bitmap)
चरण 4: AndroidManifest.xml
मानक मैनिफेस्ट।
ऐप चलाएं
डिवाइस कनेक्ट करें, Run करें। drawable से इमेज लोड होकर Base64 में कन्वर्ट होगी और वापस Bitmap बनकर ImageView में दिखेगी।
