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

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

ImageBitmap
Compose में, रास्टर इमेज (इसे अक्सर Bitmap
कहा जाता है) को ImageBitmap
इंस्टेंस में लोड किया जा सकता है. साथ ही, BitmapPainter
स्क्रीन पर बिटमैप को ड्रॉ करने के लिए ज़िम्मेदार होता है.
सामान्य इस्तेमाल के मामलों में, painterResource()
का इस्तेमाल किया जा सकता है. यह ImageBitmap
बनाने और Painter
ऑब्जेक्ट (इस मामले में - 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
बनाने के लिए, मौजूदा vector
drawable एक्सएमएल फ़ाइल इंपोर्ट करें. इसे import tool का इस्तेमाल करके Android Studio में इंपोर्ट किया जाता है. इसके अलावा, क्लास लागू करके और पाथ कमांड मैन्युअल तरीके से जारी करके भी कस्टम ImageVector
बनाया जा सकता है.
आसान इस्तेमाल के मामलों में, 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)
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक टेक्स्ट दिखता है
- कस्टम पेंटर {:#custom-painter}
- Compose में उपलब्ध संसाधन
- इमेज लोड हो रही हैं {:#loading-images}