BMP (битмап) өгөгдлийн формат. .BMP файлыг хэрхэн нээх вэ? Windows 7 дээр bmp файлыг хэрхэн нээх

Энэ нийтлэл нь bmp график формат ямар харагддаг тухай юм. Хэдийгээр энэ нь хамгийн энгийн форматуудын нэг боловч энэ форматын олон хувилбар байдаг тул бүх цэгүүд нь тодорхой байдаггүй. Тэгэхээр ус асгахаа болиод эхэлцгээе.

Формат бүтэц

bmp формат (BitMaP - битийн зураг, эсвэл оросоор бит массив гэсэн үгнээс) нь Windows үйлдлийн систем дээр унших, харуулахад хялбар шахагдаагүй (ихэнхдээ) зураг бөгөөд тусгай API функцүүдтэй байдаг.

Эхлээд bmp дээр өгөгдлийн график дүрслэлийг өгье (зураг MSDN-ээс авсан).

Эхэнд файлын толгой хэсэг (BITMAPFILEHEADER) байна. Үүнийг дараах байдлаар тайлбарлав.

bfTypeфайлын төрлийг тодорхойлно. Энд тэр BM байх ёстой. Хэрэв та ямар нэгэн BMP файлыг текст засварлагч дээр (эсвэл илүү сайн, арван зургаат тоот засварлагч) нээвэл эхний хоёр тэмдэгт нь BM болохыг харах болно (Таны таамаглаж байсанчлан BitMap гэсэн үгнээс).
bfSizeнь файлын өөрөө байтаар илэрхийлсэн хэмжээ юм. Хатуухан хэлэхэд та үүнийг тооцоолох хэрэгтэй (үүнийг санал болгож байна), гэхдээ би файлын хэмжээг буруу тохируулсан (зориуд биш ч гэсэн :)) ямар ч асуудал гараагүй (ACDSee уншсан, миний програм ажилласан), гэхдээ би танд зөвлөхгүй. санаатайгаар буруу бичих , гэнэт ухамсартай програм гарч ирэх бөгөөд энэ хэмжээг бодит хэмжээтэй харьцуулж, bmp биш, харин өөр зүйл гэж шийднэ. Бүх программууд нь хуурамч биш, жинхэнэ bmp мөн эсэхийг шалгахын тулд нэгдүгээрт, bfType нь "BM" (хашилтгүйгээр), хоёрдугаарт, bfSize нь файлын хэмжээтэй тэнцүү эсэхийг шалгах ёстой.
bfReserved1 ба bfReserved2нөөцөлсөн бөгөөд тэг байх ёстой.
bfOffBits. Энэ бол энэ бүтцийн хамгийн чухал салбаруудын нэг юм. Энэ нь зургийг дүрсэлсэн файлын эхлэлтэй (эсвэл MSDN-ийн хэлснээр "BITMAPFILEHEADER бүтцийн эхнээс") битмап өөрөө хаанаас эхэлж байгааг харуулдаг. Өөрөөр хэлбэл, массивын эхэнд хүрэх баталгаатай байхын тулд та дараах зүйлийг бичих ёстой.

typedef бүтэц tagBITMAPINFOHEADER
{
DWORD biSize;
УРТ хоёр өргөн;
урт хоёр өндөр;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
УРТ biXPelsPerMeter;
УРТ biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClr Important;
) BITMAPINFOHEADER, * PBITMAPINFOHEADER;

biSizeнь бүтцийн өөрийнх нь хэмжээ юм. Үүнийг дараах байдлаар эхлүүлэх шаардлагатай: bih.biSize = sizeof(BITMAPINFOHEADER);
Энд дахин бид bih-ийг дараах байдлаар зарласан гэж таамаглах болно: BITMAPINFOHEADER bih;
biWidth and biHeightзургийн өргөн ба өндрийг пикселээр тус тус тохируулна.
хоёр онгоцонгоцны тоог зааж өгдөг. Одоогоор дандаа 1 гэж тохируулсан байна.
biBitCount- Нэг пикселийн битийн тоо. Энэ талаар бид доор дэлгэрэнгүй ярих болно.
biCompressionшахалтын төрлийг заана. Bmp гэнэт шахагдаж байгаад гайхах эсвэл бүү ай. Би хувьдаа шахагдсан bmp-г хараагүй (гэхдээ би тэдгээрийг байхгүй гэж хэлэхгүй). Хэрэв шахалт байхгүй бол энэ тугийг BI_RGB болгож тохируулах ёстой. Энэ нийтлэлд бид шахагдаагүй форматын тухай ярьж байгаа тул би бусад тугуудыг жагсаахгүй. JPEG болон PNG файлуудад ижил бүтцийг ашигладаг бололтой, учир нь Windows 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 формат нөхцөлтэйгээрпалитр болон палитр бус гэсэн хоёр төрөлд хуваагдана. Энэ нь палитрыг өгөгдсөн форматаар ашигласан эсэхээс үл хамаарна. Палетт нь палитргүй форматтай байж болох ч тэнд ашиглагддаггүй гэдгийг анхаарна уу. Палеттгүй bmp-д өнгийг тодорхой газраас эхлээд файлд орсон битүүдээс шууд тооцдог. Мөн палитрт байт бүр нь нэг буюу хэд хэдэн пикселийг дүрсэлдэг бөгөөд байт (эсвэл бит) утга нь палитр дахь өнгөний индекс юм. Эхлэхийн тулд би боломжит хувилбаруудыг харьцуулсан хүснэгтийг өгөх болно. Зургийн төрөл (палитр эсвэл палитргүй) нь нэг пикселд хэдэн бит өгөгдсөнөөс, өөрөөр хэлбэл BITMAPINFOHEADER бүтцийн biBitCount утгаас хамаарна.

biBitCountПалетт эсвэл палитр бус форматБоломжит өнгөний дээд тооТэмдэглэл 1 Палетт2 Заавал хар цагаан биш хоёр өнгийн палитр зураг. Хэрэв растер бит (доор байгаа) дахин тохируулагдсан бол (0-тэй тэнцүү), энэ нь палитр дээрх эхний өнгө нь энэ газарт байх ёстой бөгөөд хэрэв тохируулсан бол (1-тэй тэнцүү) хоёр дахь нь байна гэсэн үг юм. 4 Палетт16 Байт бүр нь 2 пикселийг тодорхойлдог. Хэрэв зураг дээрх эхний байт нь 0x1F бол энэ нь хоёр пикселтэй тохирч байвал эхнийх нь палитр дээрх хоёр дахь өнгө (учир нь тооллого тэгээс эхэлдэг), хоёр дахь пиксел нь MSDN-ийн жишээ юм. палитрын 16 дахь өнгө. 8 Палетт256 Хамгийн түгээмэл сонголтуудын нэг. Гэхдээ үүнтэй зэрэгцэн хамгийн энгийн нь. Палетт нь нэг килобайт эзэлдэг (гэхдээ үүнд тооцохгүй байх нь дээр). Нэг байт нь нэг өнгө юм. Түүнээс гадна түүний үнэ цэнэ нь палитр дахь өнгөний дугаар юм. 16 Палетт байхгүй2^16 эсвэл 2^15Энэ бол хамгийн ойлгомжгүй сонголт юм. Энэ нь палитргүй, өөрөөр хэлбэл растер дахь хоёр байт (нэг ҮГ үг) тутамд нэг пикселийг өвөрмөц байдлаар тодорхойлдог гэдгээс эхэлье. Гэхдээ юу болох вэ: 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 нь хичнээн өнгө ашиглаж байгааг ялгахын тулд BITMAPINFOHEADER бүтцээс biClrUsed талбарыг энэ утгаар бөглөхийг санал болгож байна. Бүрэлдэхүүн хэсэг бүрийг сонгохын тулд та дараах маскуудыг ашиглах хэрэгтэй. 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 битийн палитр үүсгээгүй (BITMAPFILEHEADER бүтцийн bfOffBits нь sizeof(BITMAPFILEHEADER) + sizeof (BITMAPINFOHEADER) нийлбэртэй тэнцүү байсан бөгөөд ирж буй 24 битийн нийлбэрийг хэвээр үлдээсэн. 256 өнгийн растертай бүх зүйлийг Шаардлагатай хэсгийнхээ оронд доод талд нь хог хаягдал харуулсан 24 битийн дүрс гарч иртэл би анхны файлын хэмжээг харьцуулах хүртэл яг юу болохыг ойлгосонгүй Хэрэв палитр байхгүй байсан бол онолын хувьд энэ нь яг 1024 байт болж хувирсан. Тиймээс палитр байгаа эсэхийг хэзээ ч бүү тоо (Хэдийгээр миний тааралдсан бүх зургууд 256 өнгө буюу 1Kb хэмжээтэй байсан) bfOffBits-ийг ашиглан файлын дундуур үргэлж шилжүүлээрэй Палитрт бүх өнгийг ашигладаггүй (гэхдээ зөвхөн жишээ нь 16), дараа нь ихэвчлэн 256 талбарыг A 256 * 4 = 1024 палитрт хуваарилдаг. 4 нь RGBQUAD бүтцийн хэмжээ, өөрөөр хэлбэл нэг килобайт юм. олж авдаг.

Палеттын дараа нэн даруй растер өөрөө гарч ирдэг. Эндээс л юмнууд улам төөрөлддөг. Нэгдүгээрт, форматаас хамааран пикселүүдийг дээрх хүснэгтэд бичсэнээр энд дүрсэлсэн болно. Тэд өөрсдөө өнгөт бүрэлдэхүүн хэсгүүдийн утгыг агуулж болно (палитргүй хүмүүсийн хувьд) эсвэл палитрын массивын индекс байж болно. Зураг нь өөрөө мөр мөрөөр бичигдсэн байдаг. Хоёрдугаарт, зураг дээрээсээ доошоо харагдаж байна. Өөрөөр хэлбэл, эхлээд доод мөрийг, дараа нь төгсгөлөөс өмнөх мөрийг хамгийн дээд тал хүртэл бичнэ. Гуравдугаарт, хэрэв растер шугамын хэмжээ 4-ийн үржвэр биш бол 1-ээс 3 хоосон (тэг) байтаар дүүргэж, мөрийн урт нь догол мөрний үржвэр болно. Энэ бол хамгийн тааламжгүй зүйл юм. Үнэн хэрэгтээ формат бүрийн хувьд та энэ тооны хоосон байтыг тохируулах хэрэгтэй (хэдийгээр би палитрын нэг хэсгийг тэнд бичих дуртай, хэрэв эдгээр байтыг алгасаж, хэн ч байхгүй бол нэмэлт "тэг" хувьсагч үүсгэхийг хүсэхгүй байна. тэдэнд хэрэгтэй). Би мөрийн төгсгөлд хэдэн байт нэмэх шаардлагатайг харуулсан томъёо бүхий хүснэгтийг өгдөг. Таны таамаглаж байгаагаар Width хувьсагч нь зургийн өргөнийг илэрхийлдэг. Эдгээр бүх томъёог туршилтаар тогтоосон. Би зөвхөн хамгийн их хэрэглэгддэг форматуудын жишээг өгөх болно. Үлдсэнийг нь та өөрөө бичиж болно.

Жишээ програмууд

Та бүх эх сурвалжийг татаж авах боломжтой, би энд нэг их бичихгүй. Би зөвхөн функцуудыг тайлбартай нь өгөх болно.

Сайн байна уу 1. bmp форматаар зураг үүсгэх.
Энд монохромат зураг бий болно. Ийм функцийн гурван жишээ байна: bmp 8, 16, 24 бит үүсгэх. Би зөвхөн 16-битийг өгөх болно.

// 5-5-5 гэх мэт 16 битийн bmp форматтай зураг бүтээцгээе, энэ нь энгийн монохромат байх болно.
void CreateBmp555(char * fname, WORD өнгө)
{
HANDLE hFile;
DWORD RW;
int i, j;

// Шаардлагатай бүтцийг зарлах
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
BYTE Палетт[1024]; // Палетт

// 35 х 50 пикселийн зурагтай болцгооё
int Өргөн = 35;
int Өндөр = 50;

memset(Палетт, 0, 1024); // Палетт дээр бид тэгтэй, тэдгээрийг бөглөнө үү
memset (&bfh, 0, sizeof (bfh));

Bfh.bfType = 0x4D42; // Үүнийг bmp "BM" гэж тэмдэглэе.
bfh.bfOffBits = sizeof (bfh) + sizeof (bih) + 1024 ; // Палетт 1Кб багтаамжтай, гэхдээ бид үүнийг ашиглахгүй
bfh.bfSize = bfh.bfOffBits +
sizeof(өнгө) * Өргөн * Өндөр +
Өндөр * ((хэмжээ (өнгө) * Өргөн) % 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 = Файл үүсгэх(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, Палетт, (sizeof (өнгө) * Өргөн) % 4 , & RW, NULL );
}
CloseHandle(hFile);
}

өнгө - зургийн өнгө. Энэ хувьсагчийн утгыг эхний хүснэгтийн дагуу бөглөх ёстой. Жишээлбэл, та ACDSee дээр гарч ирсэн зургийг харж болно. Би зүгээр л Photoshop дээр нээх гэж оролдсон боловч энэ форматаар унших боломжгүй болсон.

Жишээ 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 = Файл үүсгэх (fin, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
хэрэв (hIn == INVALID_HANDLE_VALUE)
FALSE буцаах;

HOut = Файл үүсгэх(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 * sizeof (RGBQUAD), & RW, NULL);

// Заагчийг растерын эхэнд тавина
SetFilePointer (hIn, bfh.bfOffBits, NULL, FILE_BEGIN) ;
Өргөн = bih.biWidth ;
Өндөр = bih.biHeight ;
OffBits = bfh.bfOffBits;

// Санах ойг хуваарилах
inBuf = new 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, Өргөн, & 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);
ҮНЭН буцаах;
}

Эх сурвалж болон очих файлуудын нэрийг тус тус функц руу шилжүүлэх ёстой.

BMP файлыг нээхтэй холбоотой асуудлын хамгийн түгээмэл шалтгаан нь таны компьютер дээр суулгасан тохирох програмууд байхгүй байх явдал юм. Энэ тохиолдолд BMP форматтай файлд үйлчилдэг програмыг хайж олох, татаж авах, суулгахад хангалттай - ийм програмуудыг доороос авах боломжтой.

Хайлтын систем

Файлын өргөтгөлийг оруулна уу

Туслаач

Сэтгэгдэл

Манай компьютер уншдаггүй файлуудын зарим кодлогдсон өгөгдлийг заримдаа Notepad дээр үзэх боломжтой гэдгийг анхаарна уу. Ийм байдлаар бид текст эсвэл тоонуудын хэсгүүдийг унших болно - Энэ арга нь BMP файлын хувьд бас ажилладаг эсэхийг шалгах нь зүйтэй.

Жагсаалтаас програм аль хэдийн суулгасан бол яах вэ?

Ихэнхдээ суулгасан програм нь BMP файлтай автоматаар холбогддог. Хэрэв энэ нь тохиолдоогүй бол BMP файлыг шинээр суулгасан програмтай гараар амжилттай холбож болно. BMP файл дээр хулганы баруун товчийг дараад байгаа жагсаалтаас "Өгөгдмөл програмыг сонгох" сонголтыг сонгоно уу. Дараа нь та "Харах" сонголтыг сонгоод дуртай програмаа олох хэрэгтэй. Оруулсан өөрчлөлтүүдийг "OK" сонголтыг ашиглан батлах ёстой.

BMP файлыг нээдэг програмууд

Windows
Mac OS

Би яагаад BMP файлыг нээж чадахгүй байна вэ?

BMP файлуудтай холбоотой асуудал нь өөр шалтгаантай байж болно. Заримдаа BMP файлуудыг дэмждэг программ хангамжийг компьютер дээрээ суулгаснаар асуудлыг шийдэж чадахгүй. BMP файлыг нээх, ажиллах боломжгүй байгаа шалтгаан нь дараахь байж болно.

Бүртгэлийн бичилт дэх BMP файлын зохисгүй холбоо
- бидний нээж буй BMP файлын эвдрэл
- BMP файлын халдвар (вирус)
- хэт бага компьютерийн нөөц
- хуучирсан жолооч нар
- Windows бүртгэлээс BMP өргөтгөлийг устгах
- BMP өргөтгөлийг дэмждэг програмыг бүрэн суулгаагүй

Эдгээр асуудлыг зассанаар BMP файлуудыг чөлөөтэй нээж, ажиллах боломжтой болно. Хэрэв таны компьютер файлтай холбоотой асуудалтай хэвээр байгаа бол та нарийн шалтгааныг тогтоох мэргэжилтэнээс тусламж авах хэрэгтэй.

Миний компьютер файлын өргөтгөлүүдийг харуулахгүй байна, би яах ёстой вэ?

Стандарт Windows системийн тохиргоонд компьютер хэрэглэгч BMP файлын өргөтгөлийг харахгүй байна. Үүнийг тохиргоонд амжилттай өөрчилж болно. Зүгээр л "Хяналтын самбар" руу очоод "Харах ба хувийн тохиргоо" -г сонгоно уу. Дараа нь та "Folder Options" руу очоод "Харах" хэсгийг нээх хэрэгтэй. "Харах" таб дээр "Мэдэгдэж буй файлын төрлүүдийн өргөтгөлүүдийг нуух" гэсэн сонголт байдаг - та энэ сонголтыг сонгоод "OK" товчийг дарж үйлдлийг баталгаажуулах ёстой. Энэ үед BMP зэрэг бүх файлын өргөтгөлүүд файлын нэрээр эрэмблэгдсэн гарч ирэх ёстой.

Мэдэгдэл

BMP Растер зургийн файлын формат

BMP (битмап файл, төхөөрөмжөөс хамааралгүй битмап файлын формат) нь дижитал битмап зургийг дэлгэцийн төхөөрөмжөөс тусад нь хадгалахад ашигладаг битмап файлууд юм. Энэ файлын төрлийг өмнө нь Microsoft Windows болон OS/2 дээр ашиглаж байсан. "Растер" гэсэн нэр томъёо нь програмистуудын битмап гэсэн санаанаас гаралтай. BMP зургууд нь ихэвчлэн шахагдаагүй эсвэл алдагдалгүй шахагдсан байдаг (жишээлбэл, ZIP эсвэл RAR ашиглах - файлд илүүдэл өгөгдөл байгаа тул). Өнөөдөр JPG нь зургийн форматыг илүүд үздэг бөгөөд энэ нь ихэвчлэн BMP файлын том хэмжээтэй тул файл татаж авах, илгээх, байршуулах үед асуудал, саатал үүсгэдэг.

BMP файлуудын талаархи техникийн мэдээлэл

BMP файлууд нь өгөгдлийн шахалт, өнгөний профайл, альфа суваггүйгээр янз бүрийн хэмжээ, өнгө, өнгөний гүнтэй 2D дүрс хэлбэрээр хадгалагддаг. BMP зургууд нь төхөөрөмжөөс хамааралгүй битмап (DIB) форматаар хадгалагддаг бөгөөд энэ нь зураг нь системийн үзүүлэлтээс илүү өнгөтэй байна гэсэн үг юм. Энэ нь зарим BMP зураг яагаад өөр компьютер дээр өөр харагддаг болохыг тайлбарладаг. BMP дүрсийг компьютер, телевизийн дэлгэц зэрэг ямар ч төхөөрөмжөөс үзэх боломжтой. Патент байхгүй байгаа нь энэ зургийн төрлийг өргөн хүрээний төхөөрөмжүүдэд түгээмэл формат болгосон.

BMP форматын талаархи нэмэлт мэдээлэл

Бид танд BMP файлтай холбоотой асуудлыг шийдвэрлэхэд тусалсан гэж найдаж байна. Хэрэв та манай жагсаалтаас програмыг хаанаас татаж авахаа мэдэхгүй байгаа бол холбоос дээр дарна уу (энэ нь програмын нэр) - Та шаардлагатай програмын аюулгүй суулгах хувилбарыг хаанаас татаж авах талаар илүү дэлгэрэнгүй мэдээллийг авах болно.

Өөр юу асуудал үүсгэж болох вэ?

BMP файлыг нээж чадахгүй байгаа олон шалтгаан байж болно (зөвхөн тохирох програм байхгүйгээс гадна).
Нэгдүгээрт- BMP файл нь түүнийг дэмжихийн тулд суулгасан програмтай буруу холбогдсон (тохиромжгүй) байж магадгүй. Энэ тохиолдолд та энэ холболтыг өөрөө өөрчлөх хэрэгтэй. Үүнийг хийхийн тулд засварлахыг хүсч буй BMP файл дээрээ хулганы баруун товчийг дараад сонголтыг дарна уу "Нээх"дараа нь жагсаалтаас суулгасан програмаа сонгоно уу. Энэ үйлдлийн дараа BMP файлыг нээхтэй холбоотой асуудал бүрмөсөн алга болно.
Хоёрдугаарт- Таны нээхийг хүссэн файл зүгээр л гэмтсэн байж магадгүй. Энэ тохиолдолд түүний шинэ хувилбарыг хайж олох эсвэл ижил эх сурвалжаас дахин татаж авах нь хамгийн сайн арга юм (магадгүй өмнөх сессийн зарим шалтгааны улмаас BMP файлыг татаж авах ажиллагаа дуусаагүй бөгөөд үүнийг зөв нээж чадаагүй байж магадгүй юм) .

Та туслахыг хүсч байна уу?

Хэрэв танд BMP файлын өргөтгөлийн талаар нэмэлт мэдээлэл байгаа бол манай сайтын хэрэглэгчидтэй хуваалцвал бид талархах болно. Байршсан маягтыг ашиглан BMP файлын талаарх мэдээллээ бидэнд илгээнэ үү.

Графиктай ажиллахдаа олон хэрэглэгчид BMP форматтай зурагтай тулгардаг. Өнөөдөр цөөхөн хүн энэ нь юу болохыг мэддэг. Одоо бид BMP график форматыг илүү нарийвчлан авч үзэх болно. Түүнээс гадна бид түүний гарал үүсэл, хувьслын түүхийг судлахаас гадна бусад түгээмэл формат руу хөрвүүлэх энгийн аргуудыг санал болгох болно.

BMP формат гэж юу вэ?

Техникийн нарийн ширийн зүйлийг хэт их ярих хэрэггүй. BMP нь нэг давхаргат растер дээр суурилсан битмап хэлбэрээр график дүрсийг хадгалах формат гэдгийг анхаарна уу.

Тиймээ энэ үнэн. Эхэндээ, BMP зургийн форматыг зөвхөн растер зурагт ашигладаг байсан бөгөөд ерөнхийдөө бүх графикийн бүх нийтийн (стандарт) өргөтгөл байв.

Гарал үүслийн түүх

Энэхүү форматыг бий болгосон түүх нь Microsoft корпорацитай салшгүй холбоотой бөгөөд үүнийг анх өөрийн үндсэн санаа болох Windows үйлдлийн системд нэвтрүүлсэн. Нэмж дурдахад, Apple-тай байнгын өрсөлдөөнтэй байсан ч энэ төрлийн графикийг дэмжих талаар дараа нь OS/2 үйлдлийн системд зарласан.

Үнэн, тэр цагаас хойш BMP график формат олон өөрчлөлтийг авчирсан. Зургийн бүтэц нь өнөөдөр пиксел гэж нэрлэгддэг жижиг квадратуудын хослол дээр бүтээгдсэн гэж анх таамаглаж байсан. Зурган дээрх пиксел бүр өөр өөр өнгөний гүний (ийм график нэгжид ногдох битийн тоо) талаарх мэдээллийг агуулж болно гэж үздэг. Өнгөний битийн гүнийг тодорхойлоход хэрэглэгддэг утгууд нь дараах байдалтай байна: 1, 2, 4, 8, 16, 24, 32, 48, 64 бит.

Энэ тохиолдолд 8-аас бага утгын хувьд өнгийг зөвхөн өнгөт палитр (хүснэгт)-ийн индексийг ашиглан зааж өгсөн бөгөөд индексээс дээш утгыг стандарт RGB загвараас авна. Сүүлийнх нь улаан, ногоон, цэнхэр холих замаар олж авсан өнгөний өөрчлөлтийг агуулдаг.

Аль хэдийн тодорхой байгаагаар битийн гүн өндөр байх тусам эцсийн зургийн хэмжээ том байх болно. BMP файлын формат нь тэр алс холын үед ч, өнөө үед ч нэг төрлийн мастодон шиг харагддаг, учир нь хэмжээ нь нэлээд том юм. Энэ нь ижил JPG форматтай харьцуулахад зураг өөрөө шахагдаагүй байгаатай холбоотой юм. Ижил дүрс бүхий өөр өөр төрлийн өргөтгөл бүхий файлуудын хэмжээ нь зөвхөн хэдэн зуун, хэдэн арван мянган удаа ялгаатай байж болно.

BMP файлын форматыг хэрхэн нээх вэ?

Энэ төрлийн зургийг нээхийн тулд ямар ч Windows үйлдлийн системд үүнд зориулагдсан хэрэгслүүд байдаг.

Програмыг үзэх хүртэл үндсэн засварлах хэрэгсэл нь Windows-ийн аль ч хувилбарт багтсан Paint программ хэвээр үлджээ. Тухайн үед энэ програм нь зөвхөн BMP форматыг дэмждэг байсан.

Технологийн хөгжил, форматын хувьслын дагуу програм нь бас өөрчлөгдсөн. Өнөөдөр Paint-ийн чадавхи анхны хувилбаруудаас хамаагүй илүү байна.

Нэмж дурдахад график үзэх, засварлах програмууд гарч ирснээр BMP файлын форматыг техникийн дэмжлэг болон тэдгээрт зарласан. Өнөөдөр мэдэгдэж байгаа бараг бүх зургийн файлын өргөтгөлүүдийн "элэнц өвөө" нь тэр байсан тул гайхах зүйл алга.

Та ийм график өгөгдөлтэй ажиллах олон програмыг олох боломжтой. Үзэх хэрэгслүүдийн дунд, жишээлбэл, Windows дээр та гуравдагч талын програмуудын дунд ACDSee эсвэл Irfan View гэх мэт програм хангамжийн багцуудыг ашиглаж болно.

Засварлахын тулд та ажлын хувьд юу ч ашиглаж болно, жишээлбэл, ижил Adobe Photoshop, Corel Draw эсвэл хамгийн бага хэрэгсэл, чадвартай бусад график засварлагч.

BMP форматыг хөрвүүлэх хамгийн энгийн арга

Одоо BMP форматыг хамгийн энгийн аргаар хэрхэн өөрчлөхийг харцгаая. Үүнийг хийхийн тулд та ижил график засварлагчийг ашиглаж болно.

Хэрэв бид стандарт Paint програмыг жишээ болгон авбал эхлээд хүссэн BMP файлыг нээгээд дараа нь "Файл" цэснээс "Хадгалах ..." командыг сонгоно. (унадаг цэс), та дэмжигдсэн форматуудыг олох боломжтой.

Үнэн хэрэгтээ бусад график засварлагчийн хувьд битмапыг хөрвүүлэх технологи нь дээр дурдсантай төстэй байдаг. Зарим программуудад та зарчмын хувьд тийм ч их ялгаатай биш экспортын командуудыг олж болно, учир нь тэдгээрийг ашиглах үед бүх процедур нь анхны BMP-ээс өөр дэмжигдсэн график форматыг сонгох хүртэл буцдаг.

Хөрвүүлэгч ашиглах

Стандарт Windows хэрэгслүүд болон график редакторуудыг ашиглах нь бүү хэл өөр төрлийн зургийг BMP формат руу хөрвүүлэх хамгийн хялбар аргуудын нэг бол автоматаар ажилладаг тусгай хөрвүүлэгч ашиглах явдал юм.

Энд бүх зүйл энгийн. Хэрэглэгч програмын цонхонд хөрвүүлэх график файлуудыг нэмж, дараа нь эцсийн форматыг (энэ тохиолдолд BMP) сонгоод хөрвүүлэх процессыг эхлүүлэхийн тулд товчлуурыг дарна. Шинэ маягтын эцсийн файлууд нь программ дээр анхдагчаар тохируулагдсан эсвэл гараар заасан хавтсанд хадгалагдах болно.

Дашрамд хэлэхэд, та BMP форматыг өөр формат руу хөрвүүлэх шаардлагатай үед урвуу процесст мөн адил хамаарна.

Интернетэд байгаа энэ чиглэлийн олон програмын тусламжтайгаар та ийм өөрчлөлтийг онлайнаар хийх боломжийг олгодог олон эх сурвалжийг олох боломжтой. Зөвхөн энэ тохиолдолд хэрэглэгч сайт руу файл байршуулж, эцсийн форматыг сонгож, дараа нь үр дүнг компьютер дээрээ татаж авдаг. Зөвшөөрч байна, эхний хоёр аргатай харьцуулахад энэ нь тийм ч тохиромжтой биш юм.

Дүгнэлт

Энэ бол BMP график форматын талаар товчхондоо хэлж болох бүх зүйл юм. Тодорхой шалтгааны улмаас файлын бүтцийн хувьд асуудлын техникийн талыг авч үзээгүй. Ийм өгөгдөл нь энгийн хэрэглэгчдэд юу ч хэлэх боломжгүй юм.

Эцэст нь хэлэхэд би график файлуудыг шахагдаагүй BMP формат руу хөрвүүлэх талаар хэдэн үг хэлмээр байна. Мэдээжийн хэрэг, түүний одоогийн хувилбар нь дискний зай бага эзэлдэг. Гэхдээ энэ нь илүү орчин үеийн шахсан өгөгдлийн төрлөөс ялгаатай хэвээр байна. Зарчмын хувьд BMP форматыг өнөөдөр цөөхөн хүн ашигладаг тул хуучирсан гэж нэрлэж болно. Тиймээс шахсан форматыг .bmp өргөтгөлтэй график файлын төрөл болгон хөрвүүлэх нь өнөөгийн шатанд боломжгүй мэт санагдаж байна.

Файлын өргөтгөл .bmp
Файлын ангилал
Жишээ файл (2.7 МБ)
(487.85 КБ)
Холбогдох програмууд Adobe Photoshop
MS Paint
Microsoft Photo Editor
Бийр