فرمت داده BMP (bitmap). چگونه یک فایل .BMP را باز کنیم؟ نحوه باز کردن فایل bmp در ویندوز 7

این مقاله در مورد این است که فرمت گرافیکی 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 حل کنید. اگر نمی دانید از کجا می توانید یک برنامه را از لیست ما دانلود کنید، روی پیوند کلیک کنید (این نام برنامه است) - اطلاعات دقیق تری در مورد جایی که می توانید نسخه نصب امن برنامه مورد نیاز را دانلود کنید، پیدا خواهید کرد.

چه چیز دیگری می تواند مشکلاتی ایجاد کند؟

ممکن است دلایل بیشتری وجود داشته باشد که چرا نمی توانید فایل BMP را باز کنید (نه فقط عدم وجود یک برنامه مربوطه).
اولا- فایل BMP ممکن است به اشتباه با برنامه نصب شده برای پشتیبانی از آن پیوند داده شده باشد (ناسازگار). در این صورت باید خودتان این اتصال را تغییر دهید. برای این کار بر روی فایل BMP که می خواهید ویرایش کنید کلیک راست کرده و روی گزینه کلیک کنید "برای باز کردن با"و سپس برنامه ای را که نصب کرده اید از لیست انتخاب کنید. پس از این عمل، مشکلات باز کردن فایل BMP باید به طور کامل ناپدید شوند.
دوما- فایلی که می خواهید باز کنید ممکن است به سادگی آسیب دیده باشد. در این صورت بهتر است نسخه جدیدی از آن را پیدا کنید یا دوباره آن را از همان منبع دانلود کنید (شاید به دلایلی در جلسه قبل دانلود فایل BMP تمام نشد و به درستی باز نشد) .

ایا میخواهید کمک کنید؟

اگر اطلاعات بیشتری در مورد پسوند فایل BMP دارید، اگر آن را با کاربران سایت ما به اشتراک بگذارید سپاسگزار خواهیم بود. از فرم موجود استفاده کنید و اطلاعات خود را در مورد فایل BMP برای ما ارسال کنید.

اغلب، هنگام کار با گرافیک، بسیاری از کاربران با تصاویری در فرمت BMP مواجه می شوند. امروزه کمتر کسی می داند که چیست. اکنون فرمت گرافیکی BMP را با جزئیات بیشتری بررسی خواهیم کرد. علاوه بر این، ما نه تنها تاریخچه پیدایش و تکامل آن را ردیابی می کنیم، بلکه روش های ساده ای را برای تبدیل آن به سایر فرمت های محبوب ارائه می دهیم.

فرمت BMP چیست؟

اجازه دهید زیاد وارد جزئیات فنی نشویم. توجه داشته باشید که BMP فرمتی برای ذخیره تصاویر گرافیکی در قالب یک بیت مپ بر اساس رسترهای تک لایه است.

بله این درست است. در ابتدا، فرمت تصویر BMP به طور انحصاری برای تصاویر شطرنجی اعمال می شد و یک پسوند جهانی (استاندارد) برای تمام گرافیک ها به طور کلی بود.

تاریخچه پیدایش

تاریخچه ایجاد این قالب به طور جدایی ناپذیری با شرکت مایکروسافت پیوند خورده است، که برای اولین بار آن را در ذهن اصلی خود - سیستم عامل ویندوز پیاده سازی کرد. علاوه بر این، با وجود رقابت مداوم با اپل، پشتیبانی از این نوع گرافیک ها بعدا برای سیستم عامل OS/2 اعلام شد.

درست است، از آن زمان فرمت گرافیکی BMP دستخوش تغییرات زیادی شده است. در ابتدا فرض بر این بود که ساختار یک تصویر بر روی ترکیبی از مربع های کوچک ساخته شده است که امروزه به عنوان پیکسل شناخته می شوند. اعتقاد بر این است که هر پیکسل در یک تصویر می تواند حاوی داده هایی در مورد عمق رنگ متفاوت (تعداد بیت ها در هر واحد گرافیکی) باشد. مقادیر استفاده شده برای نشان دادن عمق بیت رنگ به شرح زیر است: 1، 2، 4، 8، 16، 24، 32، 48، 64 بیت.

در این مورد، برای مقادیر کمتر از 8، رنگ فقط با استفاده از شاخص پالت (جدول) سایه ها نشان داده می شود و برای مقادیر بالاتر از شاخص از مدل استاندارد RGB گرفته شده است. دومی شامل تغییرات رنگی است که از ترکیب قرمز، سبز و آبی به دست می آید.

همانطور که قبلا مشخص است، هر چه عمق بیت بیشتر باشد، اندازه تصویر نهایی بزرگتر خواهد بود. باید گفت که فرمت فایل BMP، چه در آن زمان های دور و چه امروز، به نوعی ماستودون به نظر می رسد، زیرا اندازه آن بسیار بزرگ است. این به این دلیل است که خود تصویر در مقایسه با همان فرمت JPG فشرده نشده است. اندازه فایل هایی با انواع پسوندهای مختلف حاوی یک تصویر نه تنها می تواند صدها - ده ها هزار بار متفاوت باشد.

چگونه فرمت فایل BMP را باز کنیم؟

در مورد باز کردن تصاویر از این نوع، هر سیستم عامل ویندوز دارای ابزارهای داخلی برای این کار است.

تا زمانی که برنامه‌های مشاهده ایجاد نشدند، ابزار اصلی ویرایش همان برنامه Paint بود که با هر نسخه‌ای از ویندوز ارائه می‌شد. در آن زمان، این برنامه به طور انحصاری از فرمت BMP پشتیبانی می کرد.

همانطور که قبلاً مشخص است ، با توسعه فناوری و تکامل خود قالب ، برنامه نیز تغییر کرد. امروزه قابلیت های Paint بسیار بیشتر از نسخه های اولیه آن است.

علاوه بر این، با آمدن برنامه هایی برای مشاهده و ویرایش گرافیک، فرمت فایل BMP در پشتیبانی فنی و در آنها اعلام شد. تعجب آور نیست، زیرا او بود که "پدربزرگ" تقریباً همه پسوندهای فایل تصویری شناخته شده امروزی بود.

شما می توانید برنامه های زیادی برای کار با چنین داده های گرافیکی پیدا کنید. در میان ابزارهای مشاهده، به عنوان مثال، در ویندوز می توانید از یک ابزار استاندارد در بین برنامه های شخص ثالث استفاده کنید، بسته های نرم افزاری مانند ACDSee یا Irfan View و بسیاری دیگر بسیار محبوب هستند.

در مورد ویرایش، شما می توانید از هر چیزی برای کار استفاده کنید، به عنوان مثال، همان Adobe Photoshop، Corel Draw یا هر ویرایشگر گرافیکی دیگری که دارای حداقل مجموعه ای از ابزارها و قابلیت ها باشد.

ساده ترین راه برای تبدیل فرمت BMP

حال بیایید ببینیم که چگونه می توان فرمت BMP را به ساده ترین روش ها تغییر داد. برای این کار می توانید از همان ویرایشگرهای گرافیکی استفاده کنید.

اگر برنامه استاندارد Paint را به عنوان مثال در نظر بگیریم، ابتدا فایل BMP مورد نظر در آن باز می شود و پس از آن دستور "Save As..." از منوی "File" در قسمت root، در خط پایین انتخاب می شود. (منوی کشویی)، می توانید فرمت های پشتیبانی شده را پیدا کنید.

در واقع، در هر ویرایشگر گرافیکی دیگری، فناوری تبدیل یک بیت مپ مشابه همان چیزی است که در بالا توضیح داده شد. در برخی از برنامه ها می توانید دستورات صادرات را نیز بیابید که در اصل تفاوت خاصی با هم ندارند زیرا هنگام استفاده از آنها کل روند دوباره به انتخاب فرمت گرافیکی پشتیبانی شده دیگری غیر از BMP اصلی خلاصه می شود.

با استفاده از مبدل ها

یکی از ساده‌ترین راه‌ها برای تبدیل انواع مختلف تصویر به فرمت BMP، استفاده از ابزارهای استاندارد ویندوز و ویرایشگرهای گرافیکی، استفاده از مبدل‌های تخصصی است که به صورت خودکار کار می‌کنند.

اینجا همه چیز ساده است. کاربر فایل های گرافیکی را برای تبدیل به پنجره برنامه اضافه می کند، سپس فرمت نهایی (در این مورد BMP) را انتخاب می کند و دکمه را برای شروع فرآیند تبدیل فشار می دهد. فایل های نهایی در فرم جدید در پوشه ای که مکان آن به طور پیش فرض در برنامه تنظیم شده یا به صورت دستی مشخص شده است ذخیره می شود.

به هر حال، همین امر در مورد فرآیند معکوس نیز صدق می کند، زمانی که باید فرمت BMP را به فرمت دیگری تبدیل کنید.

با همه برنامه های فراوان در این زمینه در اینترنت، می توانید منابع زیادی را پیدا کنید که به شما امکان می دهد چنین تحولاتی را به صورت آنلاین انجام دهید. فقط در این حالت کاربر فایل ها را در سایت آپلود می کند و فرمت نهایی را انتخاب می کند و سپس نتیجه را در کامپیوتر خود دانلود می کند. موافقم، در مقایسه با دو روش اول، خیلی راحت نیست.

نتیجه

این تمام چیزی است که می توان در مورد فرمت گرافیکی BMP به طور خلاصه گفت. به دلایل واضح، جنبه فنی موضوع از نظر ساختار فایل در نظر گرفته نشد. بعید است که چنین داده هایی به کاربر عادی چیزی بگوید.

اما در پایان، می خواهم چند کلمه در مورد تبدیل فایل های گرافیکی به فرمت غیر فشرده BMP اضافه کنم. البته نسخه فعلی آن فضای دیسک کمتری را اشغال می کند. اما همچنان با انواع داده های فشرده مدرن تر متفاوت است. در اصل، خود قالب BMP را حتی می توان تا حدودی منسوخ نامید، زیرا امروزه افراد کمی از آن استفاده می کنند. بنابراین، تبدیل فرمت های فشرده به نوع فایل های گرافیکی با پسوند bmp. در مرحله حاضر به وضوح غیرعملی به نظر می رسد.

فرمت فایل .bmp
دسته بندی فایل
فایل نمونه (2.7 مگابایت)
(487.85 کیلوبایت)
برنامه های مرتبط فتوشاپ
ام اس پینت
ویرایشگر عکس مایکروسافت
قلم مو