ImageBitmap बनाम Image पक्ष

आम तौर पर, रास्टर और वेक्टर इमेज, दो तरह के इमेज फ़ॉर्मैट हैं.

रास्टर ग्राफ़िक प्रारूप में पिक्सेल होते हैं: ऐसे छोटे अलग-अलग वर्ग जिनमें रंग (लाल, हरे, नीले, और ऐल्फ़ा वैल्यू से बना). बहुत सारे एक साथ पिक्सलेट करने से, एक बहुत ही बारीक इमेज बन सकती है, जैसे कि एक फ़ोटोग्राफ़. ऐप्लिकेशन रास्टर ग्राफ़िक का रिज़ॉल्यूशन तय होता है. पिक्सल की संख्या तय होती है. इसका मतलब है कि जब आप इमेज का आकार बढ़ाते हैं, तो उसकी बारीकियां हट जाती हैं और पिक्सलेशन होता है. रास्टर ग्राफ़िक फ़ॉर्मैट के उदाहरण JPEG, PNG, और WEBP हैं.

JPEG फ़ाइल का उदाहरण
पहली इमेज: JPEG फ़ाइल का उदाहरण

दूसरी ओर, वेक्टर इमेज, स्केलेबल गणित के विज़ुअल एलिमेंट. वेक्टर, निर्देशों का एक सेट है जो बताता है कि ड्रॉ कैसे करना है स्क्रीन पर मौजूद इमेज- उदाहरण के लिए, लाइन, पॉइंट या फ़िल. वेक्टर को स्केल करते समय स्क्रीन पर, आपकी क्वालिटी पर कोई असर नहीं पड़ेगा, क्योंकि गणित के फ़ॉर्मूले अलग-अलग कमांड के बीच संबंध बताएं. Imageवेक्टर का एक अच्छा उदाहरण निशान होती है, क्योंकि इन सभी को गणित के फ़ॉर्मूले.

वेक्टर का उदाहरण (फ़ाइल एक्सटेंशन .xml हैं या Kotlin कोड में तय किए गए हैं)
इमेज 2: वेक्टर का उदाहरण (फ़ाइल एक्सटेंशन .xml हैं या Kotlin कोड में तय किए गए हैं)

ImageBitmap

Compose में, रास्टर इमेज (जिसे अक्सर Bitmap कहा जाता है) को लोड किया जा सकता है एक ImageBitmap इंस्टेंस में बदल दिया जाता है और BitmapPainter करके बिटमैप को स्क्रीन पर ले जाते हैं.

इस्तेमाल के सामान्य उदाहरणों में, painterResource() का इस्तेमाल किया जा सकता है, जो काम करने के तरीकों को ImageBitmap बनाकर, Painter ऑब्जेक्ट दिखाता है (इस मामले में - a BitmapPainter):

Image(
    painter = painterResource(id = R.drawable.dog),
    contentDescription = stringResource(id = R.string.dog_content_description)
)

अगर आपको और ज़्यादा पसंद के मुताबिक बनाने की ज़रूरत है (उदाहरण के लिए, कस्टम पेंटर लागू करता है) और ImageBitmap का ऐक्सेस चाहिए, तो आप इसे लोड कर सकते हैं नीचे दिए गए तरीकों से:

val imageBitmap = ImageBitmap.imageResource(R.drawable.dog)

ImageVector

VectorPainter, स्क्रीन पर ImageVector बनाने के लिए ज़िम्मेदार है. ImageVector, SVG कमांड के सबसेट के साथ काम करता है. हर इमेज को को वेक्टर के तौर पर दिखाया जाता है. उदाहरण के लिए, कैमरे से ली गई फ़ोटो वेक्टर में बदल जाते हैं.

आप या तो मौजूदा वेक्टर को इंपोर्ट करके पसंद के मुताबिक ImageVector बना सकते हैं ड्रॉ करने लायक एक्सएमएल फ़ाइल (इंपोर्ट टूल का इस्तेमाल करके, Android Studio में इंपोर्ट की गई) या मैन्युअल रूप से क्लास लागू करना और पाथ कमांड जारी करना.

सामान्य इस्तेमाल के उदाहरणों के लिए, ठीक उसी तरह जैसे painterResource(), ImageBitmap क्लास, यह ImageVectors के लिए भी काम करती है, VectorPainter मिला है. painterResource() लोड होने का काम करता है VectorDrawables और BitmapDrawables को VectorPainter और BitmapPainter में क्रम से. VectorDrawable को किसी इमेज में लोड करने के लिए, इनका इस्तेमाल करें:

Image(
    painter = painterResource(id = R.drawable.baseline_shopping_cart_24),
    contentDescription = stringResource(id = R.string.shopping_cart_content_desc)
)

ImageVector को ऐक्सेस करने और उसे और ज़्यादा पसंद के मुताबिक बनाने के बारे में जानकारी तो आप उसे नीचे दिए गए तरीके से लोड कर सकते हैं:

val imageVector = ImageVector.vectorResource(id = R.drawable.baseline_shopping_cart_24)