इमेज के सबसे आम फ़ॉर्मैट, रेस्टर और वेक्टर इमेज हैं.
रेस्टर ग्राफ़िक फ़ॉर्मैट में पिक्सल होते हैं: छोटे-छोटे स्क्वेयर, जिनमें रंग होता है (जो लाल, हरे, नीले, और अल्फा वैल्यू से बना होता है). बहुत सारे पिक्सल को एक साथ रखने पर, ज़्यादा जानकारी वाली इमेज बनाई जा सकती है, जैसे कि फ़ोटो. रेस्टर ग्राफ़िक का रिज़ॉल्यूशन (पिक्सल की तय संख्या) एक जैसा होता है. इसका मतलब है कि इमेज का साइज़ बढ़ाने पर, उसमें मौजूद जानकारी कम हो जाती है और पिक्सलेशन हो सकता है. रेस्टर ग्राफ़िक फ़ॉर्मैट के उदाहरणों में 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
को ज़्यादा कस्टमाइज़ करना है, जैसे कि कस्टम पेंटर लागू करना और आपको 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
को ज़्यादा कस्टमाइज़ करना है और आपको ImageVector
को ऐक्सेस करना है, तो इसे इस तरह लोड किया जा सकता है:
val imageVector = ImageVector.vectorResource(id = R.drawable.baseline_shopping_cart_24)
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक टेक्स्ट दिखता है
- कस्टम पेंटर {:#custom-painter}
- Compose में संसाधन
- इमेज लोड हो रही हैं {:#loading-images}