দুটি সবচেয়ে সাধারণ ধরনের ইমেজ ফরম্যাট হল রাস্টার এবং ভেক্টর ইমেজ।
একটি রাস্টার গ্রাফিক বিন্যাসে পিক্সেল থাকে: ক্ষুদ্র স্বতন্ত্র স্কোয়ার যাতে একটি রঙ থাকে (লাল, সবুজ, নীল এবং আলফা মান দিয়ে গঠিত)। অনেকগুলি পিক্সেল একসাথে রাখার সময়, একটি খুব বিশদ চিত্র তৈরি করা যেতে পারে, যেমন একটি ফটোগ্রাফ। একটি রাস্টার গ্রাফিকের একটি নির্দিষ্ট রেজোলিউশন (পিক্সেলের নির্দিষ্ট সংখ্যক) থাকে। এর মানে হল যে আপনি যখন চিত্রের আকার বাড়ান, এটি বিশদ হারায় এবং পিক্সেলেশন ঘটতে পারে। রাস্টার গ্রাফিক ফরম্যাটের উদাহরণ হল JPEG, PNG, এবং WEBP।
অন্যদিকে, ভেক্টর চিত্রগুলি স্ক্রিনে একটি ভিজ্যুয়াল উপাদানের মাপযোগ্য গাণিতিক উপস্থাপনা। একটি ভেক্টর হল কমান্ডের একটি সেট যা বর্ণনা করে কিভাবে স্ক্রীনে ইমেজ আঁকতে হয়- উদাহরণস্বরূপ, একটি লাইন, বিন্দু বা ফিল। স্ক্রিনে একটি ভেক্টর স্কেল করার সময়, এটি গুণমান হারাবে না কারণ গাণিতিক সূত্রটি বিভিন্ন কমান্ডের মধ্যে সম্পর্ক বজায় রাখবে। ইমেজভেক্টরের একটি ভালো উদাহরণ হল ম্যাটেরিয়াল সিম্বল , কারণ সেগুলিকে গাণিতিক সূত্র দিয়ে সংজ্ঞায়িত করা যেতে পারে।
ImageBitmap
কম্পোজে, একটি রাস্টার ইমেজ (প্রায়শই একটি 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 কমান্ডের একটি উপসেট সমর্থন করে। সমস্ত ছবি ভেক্টর হিসাবে উপস্থাপন করা যায় না (উদাহরণস্বরূপ, আপনি আপনার ক্যামেরা দিয়ে যে ফটোগুলি তোলেন তা ভেক্টরে রূপান্তরিত হতে পারে না)।
আপনি একটি বিদ্যমান ভেক্টর অঙ্কনযোগ্য XML ফাইল আমদানি করে ( ইমপোর্ট টুল ব্যবহার করে অ্যান্ড্রয়েড স্টুডিওতে আমদানি করা হয়েছে) অথবা ক্লাস বাস্তবায়ন করে এবং ম্যানুয়ালি পাথ কমান্ড জারি করে একটি কাস্টম ImageVector
তৈরি করতে পারেন।
সাধারণ ব্যবহারের ক্ষেত্রে, ImageBitmap
ক্লাসের জন্য যেভাবে painterResource()
কাজ করে, একইভাবে এটি ImageVectors
এর জন্যও কাজ করে, ফলাফল হিসাবে একটি VectorPainter
ফেরত দেয়। painterResource()
যথাক্রমে VectorPainter
এবং BitmapPainter
এ VectorDrawables
এবং BitmapDrawables
এর লোডিং পরিচালনা করে। একটি ছবিতে একটি 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)
আপনার জন্য প্রস্তাবিত
- দ্রষ্টব্য: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট প্রদর্শিত হয়
- কাস্টম পেইন্টার {:#custom-painter}
- কম্পোজ সম্পদ
- ছবি লোড হচ্ছে {:#loading-images}