इमेज के सबसे आम फ़ॉर्मैट, रेस्टर और वेक्टर इमेज हैं.
रेस्टर ग्राफ़िक फ़ॉर्मैट में पिक्सल होते हैं: छोटे-छोटे स्क्वेयर, जिनमें रंग होता है (जो लाल, हरे, नीले, और अल्फा वैल्यू से बना होता है). बहुत सारे पिक्सल को एक साथ रखने पर, ज़्यादा जानकारी वाली इमेज बनाई जा सकती है, जैसे कि फ़ोटो. रास्टर ग्राफ़िक का रिज़ॉल्यूशन तय होता है. इसका मतलब है कि इसमें पिक्सल की संख्या तय है. इसका मतलब है कि इमेज का साइज़ बढ़ाने पर, उसकी बारीकियां हट जाती हैं और पिक्सलेशन हो सकता है. रेस्टर ग्राफ़िक फ़ॉर्मैट के उदाहरणों में JPEG, PNG, और WEBP शामिल हैं.
दूसरी ओर, वेक्टर इमेज, स्क्रीन पर किसी विज़ुअल एलिमेंट के स्केल किए जा सकने वाले गणितीय तरीके से दिखाए जाते हैं. वेक्टर, निर्देशों का एक सेट होता है. इससे पता चलता है कि स्क्रीन पर इमेज को कैसे ड्रॉ करना है. उदाहरण के लिए, लाइन, पॉइंट या भरना. स्क्रीन पर किसी वेक्टर को स्केल करते समय, उसकी क्वालिटी पर कोई असर नहीं पड़ेगा, क्योंकि गणित के फ़ॉर्मूले से अलग-अलग निर्देशों के बीच संबंध बना रहेगा. ImageVector के अच्छे उदाहरण के तौर पर, Material सिंबल को देखा जा सकता है. इन सभी को गणित के फ़ॉर्मूले से तय किया जा सकता है.
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
स्क्रीन पर ImageVector
को ड्रॉ करने की ज़िम्मेदारी VectorPainter
की होती है.
ImageVector
, SVG कमांड के सबसेट के साथ काम करता है. सभी इमेज को वैक्टर के तौर पर नहीं दिखाया जा सकता. उदाहरण के लिए, कैमरे से ली गई फ़ोटो को वैक्टर में नहीं बदला जा सकता.
कस्टम ImageVector
बनाने के लिए, किसी मौजूदा वेक्टर ड्रॉबल एक्सएमएल फ़ाइल को इंपोर्ट करें. यह फ़ाइल, इंपोर्ट टूल का इस्तेमाल करके 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}