آیکونها از جمله پر کاربردترین انواع فایلها در کامپیوترهای امروزی هستند به شکلی که تمامی کاربران کامپیوتری با آنها آشنایی دارند. اما مشکل بزرگ برنامهنویسان، مخصوصا کسانی که با زبانهای قدیمی برنامهنویسی از جمله ویژوال بیسیک 6 کار میکنند، پشتیبانی نکردن زبان برنامهنویسی از انواع آیکونها است. به عنوان مثال زبان برنامهنویسی ویژوال بیسیک 6 از آیکونهای 48*48 با عمق رنگ 32 بیت پشیبانی نمیکنند. در این قسمت ساختار این فایلها را بررسی کنیم.
هر فایل آیکون از سه قسمت تشکیل شده. که بترتیب عبارتند از:
1. File Header
2. Directory entry
3. Icons Area
File Header
فایل هدر اولین قسمت یک فایل آیکون است که 6 بایت را اشغال میکند. این قسمت بیانگر این است که چه تعداد آیکون در فایل وجود دارد و نوع فایل آیکون معمولی است یا کرسر ماوس.
نام |
آدرس |
نوع |
توضیحات |
Reserved |
0h |
Word |
مقدار آن صفر است (رزرو شده) |
Type |
2h |
Word |
نوع فایل است. مقدار یک برای آیکون و دو برای کرسر ماوس است |
Count |
4h |
Word |
تعداد آیکونهای درون فایل |
این فضا شامل اصلاعات آیکونهای درون فایل از قبیل: طول،عرض، تعداد رنگ، عمق رنگ، اندازه و محل قرارگیری آن در فایل است. به ازاری مقدار فیلد count درون هدر فایل، در این قسمت مدخلهای 16 بایتی وجود دارد. که هر مدخل خود شامل تعدادی فیلد است که آنها عبارتند از:
نام |
نوع |
اندازه |
توضیحات |
Width |
Byte |
1 |
عرض آیکون |
Height |
Byte |
1 |
پهنای آیکون |
Color Count |
Byte |
1 |
تعداد رنگهای آیکون. برای پیش از 16 رنگ مقدارش صفر است |
Reserved |
Byte |
|
مقدارش صفر است |
Plans |
Word |
|
تعداد پلنهای آیکون |
BitCount |
Word |
|
عمق رنگ آیکون |
Size |
DWord |
|
اندازه آیکون بر حسب بایت در فایل |
offset |
DWord |
|
مکان شروع آیکون در فایل |
نوع آیکون |
مقدار فیلد عمق رنگ |
Mono (تک رنگ) |
1 |
شانزده رنگه |
4 |
256 رنگه |
8 |
16.8 میلیون رنگه |
24 |
XP Alpha |
32 |
فیلد Plans بیانگر تعداد صفحات آیکون است اگر مقدار این فیلد پیش از یک باشد آیکون متحرک خواهد بود که این مساله فقط در کرسرهای ماوس وجود دارد.
فیلد آفست مکان شروع آیکون را در فایل نگهداری میکند که شما با جمع بندی آن با فیلد Size میتوانید به انتهای آیکون در فایل برسید