این مقاله در مورد این است که فرمت گرافیکی bmp چگونه به نظر می رسد. اگرچه این یکی از فرمت های ساده تر است، اما با توجه به این واقعیت که تنوع زیادی در این قالب وجود دارد، همه نکات واضح نیستند. بنابراین، از ریختن آب خودداری کنید، بیایید شروع کنیم.
ساختارها را قالب بندی کنید
فرمت bmp (از کلمات BitMaP - نقشه بیت، یا به زبان روسی، آرایه بیت) یک تصویر فشرده نشده (بیشتر) است که خواندن و نمایش آن در سیستم عامل ویندوز بسیار آسان است، که دارای عملکردهای API ویژه ای است که کمک می کند.
ابتدا، اجازه دهید یک نمایش گرافیکی از داده ها در bmp ارائه دهیم (تصویر گرفته شده از MSDN).
در ابتدا یک هدر فایل (BITMAPFILEHEADER) وجود دارد. به شرح زیر است:
bfTypeنوع فایل را تعیین می کند. در اینجا او باید BM باشد. اگر هر فایل BMP را در یک ویرایشگر متن (یا بهتر است بگوییم، یک ویرایشگر هگزادسیمال) باز کنید، خواهید دید که دو کاراکتر اول BM هستند (از کلمه BitMap، همانطور که احتمالاً قبلاً حدس زده اید).
bfSizeاندازه خود فایل بر حسب بایت است. به طور دقیق باید آن را محاسبه کنید (که توصیه می شود) اما من اندازه فایل را اشتباه تنظیم کردم (البته نه از روی عمد :)) و هیچ مشکلی وجود نداشت (ACDSee بدون مشکل خواند ، برنامه من کار کرد) ، اما شما را توصیه نمی کنم آن را عمداً اشتباه بنویسید، ناگهان برنامه ای وظیفه شناس ظاهر می شود که این اندازه را با واقعی مقایسه می کند و تصمیم می گیرد که bmp نیست، بلکه چیز دیگری است. در حالت ایدهآل، همه برنامهها برای اطمینان از اینکه یک bmp واقعی است و نه جعلی، باید اولاً بررسی کنند که bfType حاوی "BM" (بدون نقل قول) باشد و دوم اینکه bfSize برابر با اندازه فایل باشد.
bfReserved1 و bfReserved2رزرو شده اند و باید صفر باشند.
bfOffBits. این یکی از مهمترین زمینه های این ساختار است. این نشان می دهد که خود بیت مپ نسبت به ابتدای فایل از کجا شروع می شود (یا همانطور که MSDN می گوید، "از ابتدای ساختار BITMAPFILEHEADER")، که تصویر را توصیف می کند. یعنی برای تضمین رسیدن به ابتدای آرایه باید بنویسید:
typedef struct tagBITMAPINFOHEADER
{
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount.
DWORD biCompression.
DWORD biSizeImage.
LONG biXPelsPerMeter.
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrمهم.
) BITMAPINFOHEADER، * PBITMAPINFOHEADER;
biSizeاندازه خود سازه است. باید به صورت زیر مقداردهی اولیه شود: bih.biSize = sizeof(BITMAPINFOHEADER);
در اینجا مجدداً فرض می کنیم که bih به صورت زیر اعلام شده است: BITMAPINFOHEADER bih;
biWidth و biHeightعرض و ارتفاع تصویر را به ترتیب بر حسب پیکسل تنظیم کنید.
دو هواپیماتعداد هواپیماها را مشخص می کند. در حال حاضر همیشه روی 1 تنظیم شده است.
biBitCount- تعداد بیت در هر پیکسل در ادامه بیشتر در این مورد صحبت خواهیم کرد.
دو فشرده سازینوع فشرده سازی را نشان می دهد. از اینکه bmp به طور ناگهانی فشرده می شود، تعجب نکنید یا نترسید. من شخصا هیچ bmp فشرده ای ندیده ام (اما نمی گویم که وجود ندارند). اگر فشرده سازی وجود ندارد، این پرچم باید روی BI_RGB تنظیم شود. در این مقاله ما در مورد فرمت غیر فشرده صحبت می کنیم، بنابراین من حتی پرچم های دیگر را لیست نمی کنم. به نظر می رسد که در فایل های JPEG و PNG از همین ساختار استفاده شده است، زیرا با شروع از ویندوز 98 گزینه های BI_JPEG ظاهر می شود که نشان می دهد این تصویر JPEG و BI_PNG است، که PNG است (در مورد فرمت Jpeg چیزی نمی دانم، من فقط بر اساس آنچه در MSDN نوشته شده است، این نتایج را انجام دادم.
biSizeImageاندازه تصویر را بر حسب بایت نشان می دهد. اگر تصویر فشرده نشده باشد (یعنی فیلد قبلی روی BI_RGB تنظیم شده است)، در اینجا باید یک صفر نوشته شود. biXPelsPerMeterو biYPelsPerMeterبه ترتیب وضوح افقی و عمودی (بر حسب پیکسل در متر) دستگاه نهایی را که بیت مپ (رستر) روی آن خروجی می شود، نشان می دهد. یک برنامه کاربردی می تواند از این مقدار برای انتخاب از بین گروهی از منابع، مناسب ترین بیت مپ برای دستگاه مورد نظر استفاده کند. واقعیت این است که فرمت bmp اساساً یک شطرنجی مستقل از سخت افزار است، یعنی زمانی که ظاهر آنچه به دست می آید بستگی به آنچه این شطرنجی روی آن نمایش داده نمی شود (به اصطلاح). برای مثال، یک تصویر بدون توجه به اینکه روی صفحه نمایشگر کشیده شده باشد یا روی چاپگر چاپ شده باشد، یکسان به نظر می رسد. اما وضوح دستگاه ها متفاوت است و دقیقاً برای انتخاب مناسب ترین تصویر از بین نمونه های موجود است که از این پارامترها استفاده می شود.
biClrUsedتعداد رنگ های استفاده شده از جدول را تعیین می کند. اگر این مقدار صفر باشد، رستر از حداکثر تعداد رنگ های مجاز توسط مقدار biBitCount استفاده می کند. این فقط برای تصاویر فشرده مرتبط است. اگر biClrUsed غیر صفر و biBitCount کمتر از 16 باشد، biClrUsed تعداد فعلی رنگ موتورهای گرافیکی یا درایور دستگاه موجود را تعیین می کند. اگر biBitCount بزرگتر یا مساوی 16 باشد، biClrUsed اندازه جدول رنگ مورد استفاده برای بهینه سازی پالت سیستم فعلی را تعیین می کند.
biClrمهم- این تعداد رنگ های مهم است. تعداد رنگ های مورد نیاز برای به تصویر کشیدن نقاشی را تعیین می کند. اگر این مقدار 0 باشد (همانطور که معمولاً وجود دارد)، همه رنگ ها مهم در نظر گرفته می شوند.
انواع فرمت BMP
انواع فرمت bmp مشروطرا می توان به دو نوع پالت و غیر پالت تقسیم کرد. یعنی اینکه آیا پالت در یک قالب مشخص استفاده می شود یا خیر. لطفاً توجه داشته باشید که پالت حتی می تواند در قالب های بدون پالت باشد، اما در آنجا استفاده نمی شود. در bmps های بدون پالت، رنگ مستقیماً از بیت هایی که در فایل قرار می گیرند محاسبه می شود و از یک مکان خاص شروع می شود. و در پالت ها، هر بایت یک یا چند پیکسل را توصیف می کند و مقادیر بایت (یا بیت ها) شاخص رنگ در پالت هستند. برای شروع، جدولی را ارائه می کنم که گزینه های ممکن را با هم مقایسه می کند. نوع تصویر (پالت یا بدون پالت) به تعداد بیت داده شده در هر پیکسل بستگی دارد، یعنی به مقدار biBitCount ساختار BITMAPINFOHEADER.
biBitCount | قالب پالت یا غیر پالت | حداکثر تعداد رنگ ممکن | یادداشت | 1 | جعبه رنگ نقاشی | 2 | یک تصویر دو رنگ، نه لزوما سیاه و سفید، با پالت. اگر بیت شطرنجی (که دقیقاً در زیر است) تنظیم مجدد شود (برابر 0)، پس این بدان معنی است که اولین رنگ از پالت باید در این مکان باشد و اگر تنظیم شود (برابر 1)، سپس رنگ دوم. | 4 | جعبه رنگ نقاشی | 16 | هر بایت 2 پیکسل را توصیف می کند. در اینجا یک مثال از MSDN آورده شده است، اگر اولین بایت در تصویر 0x1F باشد، پس با دو پیکسل مطابقت دارد، رنگ اولی رنگ دوم از پالت است (زیرا شمارش معکوس از صفر شروع می شود) و پیکسل دوم است. شانزدهمین رنگ پالت. | 8 | جعبه رنگ نقاشی | 256 | یکی از رایج ترین گزینه ها. اما در عین حال ساده ترین ها. پالت یک کیلوبایت اشغال می کند (اما بهتر است روی آن حساب نکنید). یک بایت یک رنگ است. علاوه بر این، مقدار آن شماره رنگ در پالت است. | 16 | بدون پالت | 2^16 یا 2^15 | این گیج کننده ترین گزینه است. بیایید با این واقعیت شروع کنیم که بدون پالت است، یعنی هر دو بایت (یک کلمه WORD) در شطرنجی به طور منحصر به فرد یک پیکسل را تعریف می کند. اما اتفاقی که می افتد این است: 16 بیت و 3 جزء رنگی (قرمز، سبز، آبی) وجود دارد. اما 16 نمی خواهد بر 3 تقسیم شود. بنابراین در اینجا دو گزینه وجود دارد. اولین مورد این است که از 16 بیت استفاده نکنید، بلکه از 15 بیت استفاده کنید، سپس برای هر جزء رنگی 5 بیت وجود دارد. به این ترتیب می توانیم حداکثر از 2^15 = 32768 رنگ استفاده کنیم و R-G-B سه گانه = 5-5-5 بدست آوریم. اما پس از آن، یک بیت از 16 بیهوده هدر می رود، اما اتفاقاً چشمان ما، در بین همه رنگ ها، سبز را بهتر درک می کنند، بنابراین تصمیم گرفتیم این یک بیت را به جزء سبز بدهیم، یعنی آنگاه به رنگ سبز می رسیم. سه گانه R-G-B = 5-6-5، و اکنون می توانیم از 2^16 = 65536 رنگ استفاده کنیم. اما ناخوشایندترین چیز این است که از هر دو گزینه استفاده می شود. MSDN پیشنهاد می کند که برای تشخیص تعداد رنگ های استفاده شده، فیلد biClrUsed از ساختار BITMAPINFOHEADER را با این مقدار پر کنید. برای انتخاب هر جزء باید از ماسک های زیر استفاده کنید. برای قالب 5-5-5: 0x001F برای جزء آبی، 0x03E0 برای سبز و 0x7C00 برای قرمز. برای فرمت 5-6-5: اجزای 0x001F - آبی، 0x07E0 - سبز و 0xF800 قرمز به ترتیب. | 24 | بدون پالت | 2^24 | و این ساده ترین قالب است. در اینجا 3 بایت 3 جزء رنگ را تعریف می کند. یعنی یک جزء در هر بایت. ما به سادگی ساختار RGBTRIPLE را می خوانیم و از فیلدهای rgbtBlue، rgbtGreen، rgbtRed آن استفاده می کنیم. به همین ترتیب می روند. | 32 | بدون پالت | 2^32 | در اینجا 4 بایت 3 جزء را تعریف می کند. اما، با این حال، یک بایت استفاده نمی شود. می توان از آن برای مثال برای کانال آلفا (شفافیت) استفاده کرد. در این مورد، خواندن رستر با استفاده از ساختارهای RGBQUAD راحت است که به شرح زیر است: |
ذخیره سازی اطلاعات با فرمت bmp
خب حالا به جالب ترین قسمت میرسیم. پس از ساختارهای BITMAPFILEHEADER و BITMAPINFOHEADER، پالت می آید. علاوه بر این، اگر قالب بدون پالت باشد، ممکن است وجود نداشته باشد، با این حال، نباید روی آن حساب کنید. واقعیت این است که وقتی تازه شروع به درک قالب bmp کردم، در یک کتاب خواندم که ظاهراً اگر قالب بدون پالت باشد، پس اصلاً پالت ندارد. حتی دو تصویر وجود داشت - نمودارهای قالب: یکی با پالت، دیگری بدون. و در آن زمان داشتم برنامه ای می نوشتم که به سختی با فایل های bmp کار می کرد. و من مجبور شدم تصاویر ورودی را از 256 رنگ به 24 بیت (در صورت وجود) به فایل های موقت تبدیل کنم. و من به سادگی یک پالت در 24 بیت ایجاد نکردم (bfOffBits از ساختار BITMAPFILEHEADER برابر بود با مجموع sizeof(BITMAPFILEHEADER) + sizeof (BITMAPINFOHEADER) و پالت های 24 بیتی ورودی را بدون تغییر گذاشتم. همه چیز با شطرنجی 256 رنگی همانطور که باید کار می کرد، تا زمانی که به یک تصویر 24 بیتی برخورد نکردم که به جای قسمت مورد نیاز، زباله نمایش داده شده بود، بلافاصله متوجه نشدم که چه چیزی اشتباه است تا اینکه اندازه فایل اصلی را با آن مقایسه کردم یک پالت نظری که باید وجود داشته باشد، تفاوت آن دقیقاً 1024 بایت بود (اگرچه تمام تصاویری که من با آنها برخورد کردم دارای اندازه پالت 256 رنگ یا 1 کیلوبایت بودند)، همیشه با استفاده از bfOffBits، از طریق فایل به ابتدای رستر حرکت کنید همه رنگ ها در پالت استفاده نمی شوند (اما فقط مثلاً 16)، سپس اغلب 256 فیلد برای پالت A 256 * 4 = 1024 اختصاص داده می شود. 4 اندازه ساختار RGBQUAD است، یعنی همان یک کیلوبایت به دست آمده است.
بلافاصله پس از پالت، خود رستر می آید. اینجاست که همه چیز گیج کننده تر می شود. اولاً، بسته به فرمت، پیکسل ها در اینجا همانطور که در جدول بالا نوشته شده است، توصیف می شوند. و خودشان می توانند حاوی مقدار اجزای رنگ باشند (برای موارد بدون پالت)، یا می توانند شاخص های یک آرایه پالت باشند. خود تصویر خط به خط ثبت می شود. ثانیاً به نظر می رسد عکس وارونه است. یعنی ابتدا خط پایین نوشته می شود، سپس خط ماقبل آخر و همینطور تا بالای صفحه ادامه می یابد. و ثالثاً، همانطور که در نوشته شده است، اگر اندازه خط شطرنجی مضرب 4 نباشد، آن را با 1 تا 3 بایت خالی (صفر) پر می کنیم تا طول خط مضربی از پاراگراف باشد. این ناخوشایندترین چیز است. واقعیت این است که برای هر فرمت شما باید این تعداد بایت خالی را تنظیم کنید (اگرچه من دوست دارم بخشی از پالت را در آنجا بنویسم، فقط نمیخواهم متغیرهای "صفر" اضافی ایجاد کنم اگر این بایتها به هر حال نادیده گرفته شوند و هیچکس وجود نداشته باشد. به آنها نیاز دارد). من جدولی با فرمول هایی ارائه می کنم که نشان می دهد برای کدام فرمت چند بایت باید به انتهای خط اضافه شود. در آنجا، متغیر Width، همانطور که ممکن است حدس بزنید، به معنای عرض تصویر است. همه این فرمول ها به صورت تجربی ایجاد شدند. من فقط برای فرمت های پرکاربرد مثال می زنم. برای بقیه، می توانید آن را خودتان بنویسید.
نمونه برنامه ها
شما می توانید همه منابع را دانلود کنید من در اینجا چیز زیادی نمی نویسم. من فقط توابع را با نظرات می دهم.
سلام 1. ایجاد تصویر با فرمت bmp.
در اینجا یک تصویر تک رنگ ایجاد می شود. سه نمونه از این توابع وجود دارد: ایجاد bmp 8، 16 و 24 بیتی. من فقط برای 16 بیت می دهم.
// بیایید یک تصویر با فرمت bmp 16 بیتی مانند 5-5-5 ایجاد کنیم که به سادگی تک رنگ خواهد بود.
void CreateBmp555 (char * fname، رنگ WORD)
{
HANDLE hFile;
DWORD RW;
int i, j;
// ساختارهای لازم را اعلام کنید
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
پالت BYTE[1024]; // جعبه رنگ نقاشی
// بیایید تصویری با ابعاد 35 در 50 پیکسل داشته باشیم
int Width = 35 ;
int ارتفاع = 50 ;
memset (Palette, 0, 1024)؛ // در پالت ما صفر داریم، آنها را پر کنید
memset (&bfh, 0 , sizeof (bfh) );
Bfh.bfType = 0x4D42 ; // بیایید نشان دهیم که این bmp "BM" است
bfh.bfOffBits = sizeof (bfh) + sizeof (bih) + 1024 ; // پالت 1 کیلوبایت اشغال می کند، اما ما از آن استفاده نمی کنیم
bfh.bfSize = bfh.bfOffBits +
اندازه (رنگ) * عرض * ارتفاع +
ارتفاع * ((اندازه (رنگ) * عرض) % 4 ) ; // اندازه فایل نهایی را محاسبه کنید
memset (&bih, 0 , sizeof (bih) );
bih.biSize = sizeof(bih); // قرار است اینطور باشد
bih.biBitCount = 16 ; // 16 بیت در هر پیکسل
bih.biClrUsed = 32768 ; // ما از 5-5-5 استفاده می کنیم
bih.biCompression = BI_RGB; // بدون فشرده سازی
bih.biHeight = ارتفاع;
bih.biWidth = عرض;
bih.biPlanes = 1 ; // باید 1 باشد
// و فیلدهای باقیمانده 0 باقی می مانند
HFile = CreateFile (Fname, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
اگر (hFile == INVALID_HANDLE_VALUE)
برگشت ؛
// سرصفحه ها را بنویسید
WriteFile (hFile, & bfh, sizeof (bfh) , & RW, NULL );
WriteFile (hFile, & bih, sizeof (bih) , & RW, NULL );
// پالت را بنویسید
WriteFile (hFile، پالت، 1024، &RW، NULL)؛
برای (i = 0؛ i<
Height;
i++
)
{
برای (j = 0؛ j<
Width;
j++
)
{
WriteFile (hFile، & color، sizeof (رنگ)، & RW، NULL) ;
}
// با حاشیه تراز کنید
WriteFile (hFile، پالت، (اندازه (رنگ) * عرض) % 4، & RW، NULL) ;
}
CloseHandle(hFile);
}
رنگ - رنگ تصویر مقدار این متغیر باید مطابق جدول اول پر شود. برای مثال می توانید تصویر حاصل را در ACDSee مشاهده کنید. من فقط سعی کردم آن را در فتوشاپ باز کنم، اما معلوم شد که نمی تواند آنها را در این قالب بخواند، اما شما می توانید :).
مثال 2. تبدیل تصویر از 8 بیت (256 رنگ) به 24 بیت.
BOOL Convert256To24 (char * fin، char * fout)
{
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
int عرض، ارتفاع؛
پالت RGBQUAD[ 256 ] ;
BYTE * inBuf;
RGBTRIPLE * outBuf;
HANDLE hIn, hOut;
DWORD RW;
DWORD OffBits;
int i, j;
Hin = CreateFile (fin، GENERIC_READ، FILE_SHARE_READ، NULL، OPEN_EXISTING، 0، NULL);
اگر (hIn == INVALID_HANDLE_VALUE)
بازگشت FALSE;
HOout = CreateFile(fout، GENERIC_WRITE، 0، NULL، CREATE_ALWAYS، 0، NULL);
اگر (Hout == INVALID_HANDLE_VALUE)
{
CloseHandle(hIn);
بازگشت FALSE;
}
// داده ها را بخوانید
ReadFile (hIn، & bfh، sizeof (bfh)، & RW، NULL);
ReadFile (hIn, & bih, sizeof (bih) , & RW, NULL );
ReadFile (hIn، پالت، 256 * اندازه (RGBQUAD)، & RW، NULL).
// نشانگر را در ابتدای رستر قرار دهید
SetFilePointer (hIn، bfh.bfOffBits، NULL، FILE_BEGIN)؛
عرض = bih.biWidth ;
قد = bih.biHeight ;
OffBits = bfh.bfOffBits ;
// تخصیص حافظه
inBuf = BYTE جدید [ عرض ] ;
outBuf = RGBTRIPLE جدید [ عرض ] ;
// سرصفحه ها را پر کنید
bfh.bfOffBits = sizeof (bfh) + sizeof (bih) ; // بیایید یک پالت ننویسیم
bih.biBitCount = 24 ;
bfh.bfSize = bfh.bfOffBits + 4 * عرض * ارتفاع + ارتفاع * (عرض % 4 ) ; // حجم فایل
// و بقیه بدون تغییر باقی می ماند
// سرصفحه ها را بنویسید
WriteFile (hOut, & bfh, sizeof (bfh) , & RW, NULL );
WriteFile (hOut, & bih, sizeof (bih) , & RW, NULL );
// بیایید تبدیل را شروع کنیم
برای (i = 0؛ i<
Height;
i++
)
{
ReadFile (hIn، inBuf، Width، & RW، NULL)؛
برای (j = 0؛ j<
Width;
j++
)
{
outBuf[ j].rgbtRed = پالت[ inBuf[ j] ] .rgbRed ;
outBuf[ j].rgbtGreen = پالت[ inBuf[ j] ] .rgbGreen ;
outBuf[ j].rgbtBlue = پالت[ inBuf[ j] ] .rgbBlue ;
}
WriteFile (hOut، outBuf، sizeof (RGBTRIPLE) * عرض، و RW، NULL );
// برای تراز کردن، زباله بنویسید
WriteFile (hOut، پالت، عرض % 4، & RW، NULL) ;
SetFilePointer(hIn، (3 * عرض) % 4، NULL، FILE_CURRENT) ;
}
حذف inBuf;
حذف outBuf؛
CloseHandle(hIn);
CloseHandle(hOut);
بازگشت TRUE;
}
نام فایل های مبدا و مقصد باید به ترتیب به تابع ارسال شود.
شایع ترین علت مشکلات باز کردن فایل BMP، به سادگی عدم نصب برنامه های کاربردی مناسب بر روی رایانه شما است. در این مورد، کافی است برنامه ای را پیدا کنید، دانلود و نصب کنید که فایل ها را با فرمت BMP ارائه می دهد - چنین برنامه هایی در زیر موجود است.
سیستم جستجو
پسوند فایل را وارد کنید
کمک
سرنخ
لطفاً توجه داشته باشید که برخی از دادههای کدگذاری شده از فایلهایی که رایانه ما نمیخواند، گاهی اوقات در Notepad قابل مشاهده است. به این ترتیب ما قطعات متن یا اعداد را می خوانیم - ارزش بررسی این را دارد که آیا این روش در مورد فایل های BMP نیز کار می کند.
اگر برنامه از لیست قبلاً نصب شده باشد چه باید کرد؟
اغلب یک برنامه نصب شده باید به طور خودکار به یک فایل BMP پیوند داده شود. اگر این اتفاق نیفتد، فایل BMP را می توان با موفقیت به صورت دستی با برنامه تازه نصب شده مرتبط کرد. به سادگی بر روی فایل BMP کلیک راست کرده و سپس از لیست موجود گزینه "Choose default program" را انتخاب کنید. سپس باید گزینه “View” را انتخاب کرده و اپلیکیشن مورد علاقه خود را پیدا کنید. تغییرات وارد شده باید با استفاده از گزینه "OK" تایید شوند.
برنامه هایی که فایل BMP را باز می کنند
پنجره ها
سیستم عامل مک
چرا نمی توانم یک فایل BMP را باز کنم؟
مشکلات فایل های BMP می تواند دلایل دیگری نیز داشته باشد. گاهی اوقات حتی نصب نرم افزاری روی رایانه شما که از فایل های BMP پشتیبانی می کند نیز مشکل را حل نمی کند. دلیل عدم امکان باز کردن و کار با فایل BMP نیز ممکن است موارد زیر باشد:
پیوندهای نامناسب فایل BMP در ورودی های رجیستری
- خرابی فایل BMP که باز می کنیم
- عفونت فایل BMP (ویروس)
- منابع کامپیوتری بسیار کم
- درایورهای قدیمی
- حذف پسوند BMP از رجیستری ویندوز
- نصب ناقص برنامه ای که از پسوند BMP پشتیبانی می کند
رفع این مشکلات باید منجر به باز کردن آزادانه و کار با فایل های BMP شود. در صورتی که رایانه شما همچنان با فایلها مشکل دارد، باید از یک متخصص کمک بگیرید تا علت دقیق آن را تعیین کند.
کامپیوتر من پسوند فایل را نشان نمی دهد، چه کاری باید انجام دهم؟
در تنظیمات استاندارد سیستم ویندوز، کاربر کامپیوتر پسوند فایل BMP را نمی بیند. این را می توان با موفقیت در تنظیمات تغییر داد. کافی است به «کنترل پنل» بروید و «مشاهده و شخصی سازی» را انتخاب کنید. سپس باید به "Folder Options" رفته و "View" را باز کنید. در تب "مشاهده" گزینه "پنهان کردن پسوند انواع فایل های شناخته شده" وجود دارد - باید این گزینه را انتخاب کنید و با کلیک بر روی دکمه "OK" عملیات را تأیید کنید. در این مرحله، پسوندهای همه فایل ها، از جمله BMP، باید بر اساس نام فایل مرتب شده ظاهر شوند.
اعلامیه
فرمت فایل تصویری BMP Raster
BMP (فایل بیت مپ، فرمت فایل بیت مپ مستقل از دستگاه) فایل های بیت مپ هستند که برای ذخیره تصاویر بیت مپ دیجیتال جدا از دستگاه نمایشگر استفاده می شوند. این نوع فایل قبلا در Microsoft Windows و OS/2 استفاده می شد. اصطلاح "راستر" از ایده برنامه نویسان از بیت مپ می آید. تصاویر BMP معمولاً فشرده نشده یا بدون تلفات فشرده می شوند (به عنوان مثال، با استفاده از ZIP یا RAR - به دلیل وجود داده های اضافی در فایل). امروزه، JPG فرمت تصویر ترجیحی است - عمدتاً به دلیل حجم بالای فایل BMP، که می تواند باعث ایجاد مشکل یا تاخیر در هنگام دانلود، ارسال یا آپلود فایل ها شود.
اطلاعات فنی در مورد فایل های BMP
فایل های BMP به صورت تصاویر دوبعدی با اندازه ها، رنگ ها و عمق رنگ های مختلف بدون فشرده سازی داده ها، پروفایل های رنگی یا کانال های آلفا ذخیره می شوند. تصاویر BMP در قالب های بیت مپ (DIB) مستقل از دستگاه ذخیره می شوند، به این معنی که تصویر به جای مشخصات سیستم، رنگ دارد. این توضیح می دهد که چرا برخی از تصاویر BMP در رایانه های مختلف متفاوت به نظر می رسند. تصاویر BMP را می توان در هر دستگاهی از جمله صفحه نمایش کامپیوتر و تلویزیون مشاهده کرد. عدم وجود حق ثبت اختراع، این نوع تصویر را به فرمت محبوبی برای طیف گسترده ای از دستگاه ها تبدیل کرده است.
اطلاعات اضافی در مورد فرمت BMP
فرمت فایل | .bmp |
دسته بندی فایل | |
فایل نمونه | (2.7 مگابایت) (487.85 کیلوبایت) |
برنامه های مرتبط | فتوشاپ ام اس پینت ویرایشگر عکس مایکروسافت قلم مو |