Энэ нийтлэл нь 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 |
Файлын ангилал | |
Жишээ файл | (2.7 МБ) (487.85 КБ) |
Холбогдох програмууд | Adobe Photoshop MS Paint Microsoft Photo Editor Бийр |