Paziņojums
BMP Rastra attēla faila formāts
BMP (bitkartes fails, no ierīces neatkarīgs bitkartes faila formāts) ir bitkartes faili, ko izmanto digitālo bitkartes attēlu glabāšanai atsevišķi no displeja ierīces. Šis faila veids iepriekš tika izmantots operētājsistēmās Microsoft Windows un OS/2. Termins "rastrs" nāk no programmētāju idejas par bitkarti. BMP attēli parasti ir nesaspiesti vai bez zudumiem saspiesti (piemēram, izmantojot ZIP vai RAR — failā esošo lieko datu dēļ). Mūsdienās vēlamais attēla formāts ir JPG — galvenokārt lielā BMP faila izmēra dēļ, kas var radīt problēmas vai aizkavēšanos, lejupielādējot, nosūtot vai augšupielādējot failus.
Tehniskā informācija par BMP failiem
BMP faili tiek saglabāti kā dažādu izmēru, krāsu un krāsu dziļuma 2D attēli bez datu saspiešanas, krāsu profiliem vai alfa kanāliem. BMP attēli tiek saglabāti no ierīces neatkarīgos bitkartes (DIB) formātos, kas nozīmē, ka attēlam ir krāsas, nevis sistēmas specifikācijas. Tas izskaidro, kāpēc daži BMP attēli dažādos datoros izskatās atšķirīgi. BMP attēlus var skatīt jebkurā ierīcē, tostarp datora un televīzijas ekrānos. Patentu trūkums ir padarījis šo attēla veidu par populāru formātu plašam ierīču klāstam.
Papildinformācija par BMP formātu
Faila paplašinājums | .bmp | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Faila kategorija | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Piemēra fails | (2,7 MiB) (487,85 KiB) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Saistītās programmas | Adobe Photoshop MS Paint Microsoft fotoattēlu redaktors Ota |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Saraksts 1
vienība bmpread; (procedūras darbam ar Bmp) interfeisa tips artype = arrayof byte;<>arptr = ^artype;bmFileHeader = ieraksts (faila galvene) Typf: vārds; (paraksts ) Izmērs: longint; (faila garums baitos) Res1: vārds; (rezervēts) Res2: vārds; (rezervēts) OfBm: longint; (attēla nobīde baitos (1078)) beigas;
(sprite) procedūra CreateSprite(s:string; x,y,dx,dy:integer); var f: fails; (fails ar sprite attēlu) begin getmem(Sprt.Img,sizeof(SpriteArrayType));(piešķirt atmiņu spraitam) getmem(Sprt.Back,sizeof(SpriteArrayType));
(piešķirt atmiņu buferim) Readbmp(@(Sprt.Img^),Xsize,Ysize,@p,s);
Sprt.x:= x;
Sprt.y:=y; (iestatiet sākotnējās vērtības) Sprt.dx:= dx; (koordinātas un inkrementi) Sprt.dy:= dy; beigas;
Mūsdienu cilvēki bieži strādā ar dažādu formātu digitālajiem attēliem. Tos izmanto internetā, datorā, viedtālrunī, digitālajā kamerā, darbības kamerās un citās ierīcēs. Bet ir viens formāts, kas var maldināt dažus lietotājus – BMP. Tas nav īpaši izplatīts attēla veids (vismaz mūsdienās), taču to joprojām var redzēt. Tāpēc būtu jauki saprast, kas viņš ir. Mēģināsim atbildēt uz jautājumu, kas ir BMP formāts. Bet vispirms mums jārunā par tā rašanās vēsturi. Tas palīdzēs jums saprast, kāpēc tas tika izveidots. Tātad, sāksim ar BMP formāta izveides vēsturi.
BMP ir faila tips bitkartes attēlu glabāšanai. Tikai rastrs. Vektorgrafika nav paredzēta šim formātam. Šī formāta īpatnība ir tāda, ka tajā netiek izmantots nekāds saspiešanas mehānisms. Teorētiski tam vajadzētu nodrošināt visaugstāko attēla kvalitāti. Bet problēma ir tāda, ka šāda attēla izmērs būs vienkārši gigantisks. Tāpēc šis rastra attēla formāts ir zaudējis popularitāti. BMP sāka krist no Olimpa pēc PNG parādīšanās. Šis formāts ļāva ne tikai saglabāt augstas kvalitātes attēlus mazā izmērā, bet arī strādāt ar slāņiem, kas mūsdienu pasaulē ir ļoti svarīgi.
Tomēr BMP fails joprojām pastāv un tiek izmantots. Tāpēc lietotājiem ir svarīgi zināt, kā atvērt šādus failus un kā tos pārvērst ērtākos formātos. Tas ir tas, ko mēs tagad apspriedīsim. Ir vērts uzreiz pateikt, ka šādu programmu ir ļoti daudz. Un viņi visi spēj adekvāti strādāt ar šo formātu, jo tas ir diezgan vecs. Bet konvertēšanai ir savas nianses, kuras ir vērts pieminēt.
Kā atvērt BMP
Šobrīd ar šo uzdevumu var tikt galā vairāk vai mazāk uzlabots grafisko failu skatītājs. Savādi, bet pat standarta Windows skatītājs var atvērt šo formātu, lai gan ar briesmīgām bremzēm. Bet FS Image Viewer un ACDSee vislabāk tiek galā ar šo uzdevumu. Ar šī formāta failiem var strādāt arī tādi uzlaboti produkti kā Photoshop un Corel redaktori. Kopumā visi mūsdienu skatītāji var lasīt šo formātu, jo tas ir diezgan vecs.
Tomēr viss iepriekš minētais attiecas tikai uz Windows saimes operētājsistēmām. Kā atvērt BMP failu operētājsistēmā Linux vai Mac OS? Ir specializēti programmatūras produkti, kas atbalsta šo formātu. Un tādu ir daudz. Tātad nekādu problēmu nebūs. Un Mac OS atbalsta arī Photoshop, kas ir pilnīgi visēdājs. Papildus citām multivides programmām.
BMP konvertēšana
Kā pārvērst BMP uz JPG vai kādu citu izplatītāku formātu? Tas viss ir atkarīgs no tā, kāda attēla kvalitāte ir nepieciešama izejā. Ja zaudējumiem jābūt minimāliem, labāk šiem nolūkiem izmantot Photoshop vai kaut ko līdzvērtīgu. Tikai Photoshop ļauj saglabāt attēlu, nezaudējot kvalitāti. Un, ja saglabāšanai izmantojat PNG vai PSD formātus, varat arī saglabāt slāņus. Ja kvalitātei nav nozīmes, varat izmantot jebkuru pārveidotāju. Gandrīz visi no tiem atbalsta konvertēšanu uz JPEG, PNG, BMP un citiem populāriem formātiem.
Un atkal iepriekš tika uzskaitītas tikai Windows programmas. Operētājsistēmā Linux vai Mac OS ar konvertēšanu ir nedaudz savādāk. Apple sistēma atbalsta Photoshop, tāpēc BMP attēla ātra konvertēšana citā formātā, nezaudējot kvalitāti, nav problēma. Bet Linux ir jāizmanto dažādi pārveidotāji, kas bieži vien nespēj nodrošināt maksimālu kvalitāti.
Kam var izmantot šo formātu?
Lai gan BMP formāts ir novecojis, dažos gadījumos to joprojām var izmantot. Pietiek ar to, ka visa Windows saskarne ir balstīta uz šo rastra formātu. Kāpēc tas tā ir? Tā kā BMP lietošana ir ļoti ērta. Tam ir laba krāsa un pilnīgs kompresijas trūkums. Turklāt attēlus šajā formātā var rediģēt neierobežotu skaitu reižu. Un kvalitāte nemaz necietīs. Atšķirībā no tā paša JPEG. Tieši tas izskaidro šī formāta vitalitāti. Arī daudzi Windows programmu izstrādātāji savos produktos aktīvi izmanto BMP attēlus.
Vēl viena formāta pielietojuma joma ir datoru BIOS. Dažiem no tiem ir ļoti labi attēli (tajos var būt ražotāja logotips, daži saskarnes elementi utt.). Visi no tiem ir izgatavoti BMP formātā. Šāda veida rastra attēli labi darbojas sistēmās bez atbilstoša grafiskā interfeisa. Tāpēc tos izmanto BIOS.
Izmērs
Ir vērts atzīmēt, ka labs attēls BMP formātā "svers" daudz. Lieta ir tāda, ka šis faila formāts neizmanto saspiešanu. Tāpēc izmēru nevar samazināt. Piemēram, augstas kvalitātes fotoattēlam ar izšķirtspēju 1280x720 pikseļi būs aptuveni 300 megabaiti. Tā ir šī formāta īpatnība.
Iekšējā struktūra un paplašināšanās
BMP faila struktūru var raksturot šādi: tas ir viena slāņa rastra tipa attēls ar pienācīgu blīvumu un labu krāsu atveidi. Tas ir galvenais formāta trūkums - tajā nevar izmantot papildu slāņus. Tāpēc "tīmeklī" tos aizstāja progresīvāki formāti, kas atbalsta daudzslāņu.
Secinājums
Tātad, mēs apskatījām veco, bet dažviet joprojām lietoto BMP formātu. Šis ir rastra attēla formāts, kas lepojas ar saspiešanas neesamību un ir saderīgs ar gandrīz visām programmām, gan skatītājiem, gan redaktoriem. To var izmantot mūsdienu programmās, lai nodrošinātu interfeisa darbību. Un Windows operētājsistēmā tas tiek plaši izmantots līdz šai dienai. Konvertēt šo formātu citā formātā nav grūti. Šim nolūkam ir milzīgs daudzums piemērotas programmatūras. Un ne tikai Windows. Kopumā šis formāts joprojām darbosies, neskatoties uz progresīvāku un kvalitatīvāku formātu parādīšanos.
Kā paslēpt tekstu bitkartes attēlā. Diemžēl es neatradu nevienu tēmu par šo tēmu un nolēmu aizpildīt šo robu. Zem griezuma jūs atradīsit veidu, kā paslēpt tekstu bitkartē, kā arī implementāciju C#.
Problēmas paziņojums
Paslēpiet patvaļīgu tekstu Windows-1251 kodējumā 24 bitu bitkartes attēlā un izvadiet to atpakaļ bez kropļojumiem.bmp faila struktūra
Pirmkārt, ļaujiet man jums atgādināt, kas ir bitkartes fails. Esmu pārliecināts, ka jūs to visu ļoti labi zināt, tikai būs skaidrāk aprakstīt teksta slēpšanas algoritmu, pamatojoties uz iesniegto materiālu. Tātad. Jebkurš bmp fails sastāv no četrām daļām:- Faila galvene
- Attēla nosaukums (var nebūt)
- Palete (var nebūt)
- Pats attēls
Tagad pāriesim pie paša attēla. Kā zināms, bmp formāts pēc noklusējuma nenodrošina saspiešanu (lai gan ir atbalsts saspiešanai, izmantojot RLE algoritmu). Tādējādi katrs pikselis mūsu gadījumā ir kodēts ar 24 bitiem, viens baits katram krāsu komponentam. Tāpēc mēs varam iekodēt ne vairāk, ne mazāk, bet tieši 16777216 krāsas. Skaidrības labad šeit ir attēls:
Ideja par teksta slēpšanas algoritmu
Jūs droši vien jau uzminējāt, kāda ir ideja. Lieta tāda, ka vidusmēra cilvēka (nevis profesionāla mākslinieka vai fotogrāfa) acs izšķir daudz mazāk krāsu, nekā norādīts iepriekš. Nevienai grāmatai nav skaidras atbildes uz jautājumu, cik krāsu acs spēj atšķirt, taču lielākais skaitlis, ar ko esmu sastapies, ir 10 miljoni, no tā izriet, ka var būt vairāki no vismazāk nozīmīgajiem bitiem no katrai krāsu sastāvdaļai aizņemties mūsu savtīgiem mērķiem.Daži skaitļi: piemēram, ņemsim un acīmredzami atņemsim divus zemas kārtas bitus no RGB komponenta. Tas ir, no 24 bitiem mums paliks 18, kas var iekodēt tieši 262144 krāsas. Tagad ņemsim tekstu windows-1251 kodējumā, kurā katra rakstzīme ir attēlota ar 8 bitiem. Izmantojot vienkāršus matemātiskos aprēķinus, mēs atklājam, ka 3 rakstzīmes var saglabāt 4 pikseļos. Tādējādi 1024x768 attēlā, kur ir 786432 pikseļi, varat saglabāt 589824 rakstzīmes. Nav slikti, vai ne? Skaidrības labad iedošu divas bildes. Pirmajā ir oriģinālais attēls, bet otrajā ir attēls, kurā katras krāsas komponenta vismazākie divi biti ir piepildīti ar tekstu. Ļaujiet man nekavējoties rezervēt, ka attēli tiek pārveidoti par png, lai ietaupītu trafiku.
Oriģinālais attēls:
Attēls ar tekstu
Ja paskatās uzmanīgi, otrajā attēlā krāsas šķiet blāvākas. Jā, tā ir taisnība. Bet jūs un es zinām, ka parādītajā attēlā ir kaut kas nepareizs, un, ja mēs to nezinātu, mēs nebūtu uzminējuši, ka tajā ir paslēpts kaut kāds teksts. Starp citu, attēlā ir paslēpta frāze “Sveika pasaule!!! =)" reizināts 100 reizes.
Tas arī viss. Kā redzat, ideja ir ļoti vienkārša. Starp citu, piedāvāto metodi sauc par LSB (paldies Frol par padomu). Visbeidzot, varat apskatīt ieviešanu C#.
Ieviešana C#
Iesniegtā realizācija nekvalificējas balvai “Perfekts kods”, tā tikai demonstrē aprakstīto algoritmu praksē. Šajā gadījumā es nedzinājos pēc koda skaistuma, bet gan pēc skaidrības.Ļoti bieži, strādājot ar grafiku, daudzi lietotāji saskaras ar attēliem BMP formātā. Mūsdienās tikai daži cilvēki zina, kas tas ir. Tagad mēs sīkāk aplūkosim BMP grafisko formātu. Turklāt mēs ne tikai izsekosim tā izcelsmes un evolūcijas vēsturi, bet arī piedāvāsim dažas vienkāršas metodes, kā to pārveidot citos populāros formātos.
Kas ir BMP formāts?
Neiedziļināsimies pārāk daudz tehniskās detaļās. Ņemiet vērā, ka BMP ir formāts grafisko attēlu glabāšanai bitkartes veidā, pamatojoties uz viena slāņa rastriem.
Jā, tā ir taisnība. Sākotnēji BMP attēla formāts tika piemērots tikai rastra attēliem un bija universāls (standarta) paplašinājums visai grafikai kopumā.
Izcelšanās vēsture
Šī formāta izveides vēsture ir nesaraujami saistīta ar korporāciju Microsoft, kas pirmo reizi to ieviesa savā galvenajā idejā - Windows operētājsistēmā. Turklāt, neskatoties uz pastāvīgo konkurenci ar Apple, vēlāk tika paziņots par atbalstu šāda veida grafikam operētājsistēmai OS/2.
Tiesa, kopš tā laika BMP grafikas formāts ir piedzīvojis daudzas izmaiņas. Sākotnēji tika pieņemts, ka attēla struktūra tika veidota uz mazu kvadrātu kombinācijas, ko mūsdienās sauc par pikseļiem. Tiek uzskatīts, ka katrs attēla pikselis var saturēt datus par atšķirīgu krāsu dziļumu (bitu skaitu uz šādu grafisko vienību). Vērtības, kas tiek izmantotas, lai norādītu krāsu bitu dziļumu, parādās šādi: 1, 2, 4, 8, 16, 24, 32, 48, 64 biti.
Šajā gadījumā vērtībām, kas ir mazākas par 8, krāsa tiek norādīta tikai, izmantojot toņu paletes (tabulas) indeksu, un vērtībām virs indeksa tiek ņemta no standarta RGB modeļa. Pēdējā satur krāsu variācijas, kas iegūtas, sajaucot sarkano, zaļo un zilo.
Kā jau ir skaidrs, jo lielāks bitu dziļums, jo lielāks būs gala attēla izmērs. Jāsaka, ka BMP faila formāts gan tajos tālajos laikos, gan mūsdienās izskatās pēc sava veida mastodona, jo tā izmērs ir diezgan liels. Tas ir saistīts ar faktu, ka pats attēls ir nesaspiests, salīdzinot, teiksim, ar to pašu JPG formātu. Failu ar dažāda veida paplašinājumiem, kas satur vienu un to pašu attēlu, lielums var atšķirties ne tikai simtiem - desmitiem tūkstošu reižu.
Kā atvērt BMP faila formātu?
Attiecībā uz šāda veida attēlu atvēršanu jebkurai Windows operētājsistēmai ir iebūvēti rīki.
Līdz skatīšanas lietojumprogrammu izveidei galvenais rediģēšanas rīks palika vietējā Paint programma, kas iekļauta jebkurā Windows versijā. Tajā laikā šī lietojumprogramma atbalstīja tikai BMP formātu.
Kā jau skaidrs, līdz ar tehnoloģiju attīstību un paša formāta attīstību mainījās arī programma. Mūsdienās Paint iespējas ir daudz lielākas nekā tās sākotnējās versijas.
Turklāt, parādoties programmām grafikas skatīšanai un rediģēšanai, tehniskajā atbalstā un tajos tika paziņots par BMP faila formātu. Tas nav pārsteidzoši, jo tieši viņš bija gandrīz visu mūsdienās zināmo attēlu failu paplašinājumu “vecvectēvs”.
Jūs varat atrast daudz programmu darbam ar šādiem grafiskiem datiem. Starp skatīšanas rīkiem, piemēram, sistēmā Windows varat izmantot standarta rīku starp trešo pušu lietojumprogrammām, programmatūras pakotnes, piemēram, ACDSee vai Irfan View un daudzas citas, ir diezgan populāras.
Runājot par rediģēšanu, darbam varat izmantot jebko, piemēram, to pašu Adobe Photoshop, Corel Draw vai jebkuru citu grafisko redaktoru, kuram ir pat minimāls rīku un iespēju komplekts.
Vienkāršākais veids, kā konvertēt BMP formātu
Tagad redzēsim, kā mainīt BMP formātu visvienkāršākajos veidos. Lai to izdarītu, varat izmantot tos pašus grafiskos redaktorus.
Ja par piemēru ņemam standarta lietojumprogrammu Paint, vispirms tajā tiek atvērts vēlamais BMP fails, pēc kura izvēlnē “Fails” tiek atlasīta komanda “Saglabāt kā...”, kur saknē, apakšējā rindā. (nolaižamā izvēlne), varat atrast atbalstītos formātus.
Faktiski jebkurā citā grafiskajā redaktorā bitkartes konvertēšanas tehnoloģija ir līdzīga iepriekš aprakstītajai. Dažās lietojumprogrammās var atrast arī eksporta komandas, kas principā īpaši neatšķiras, jo, tos lietojot, visa procedūra atkal ir saistīta ar cita atbalstīta grafikas formāta atlasi, kas nav oriģinālais BMP.
Izmantojot pārveidotājus
Viens no vienkāršākajiem veidiem, kā pārveidot cita veida attēlus BMP formātā, nemaz nerunājot par standarta Windows rīku un grafisko redaktoru izmantošanu, ir izmantot specializētus pārveidotājus, kas darbojas automātiski.
Šeit viss ir vienkārši. Lietotājs programmas logam pievieno konvertējamos grafiskos failus, pēc tam izvēlas galīgo formātu (šajā gadījumā BMP) un nospiež pogu, lai sāktu konvertēšanas procesu. Jaunās formas galīgie faili tiks saglabāti mapē, kuras atrašanās vieta ir iestatīta pēc noklusējuma lietojumprogrammā vai norādīta manuāli.
Starp citu, tas pats attiecas uz apgriezto procesu, kad nepieciešams konvertēt BMP formātu uz kādu citu.
Ar visām daudzajām programmām šajā jomā internetā varat atrast daudz resursu, kas ļauj veikt šādas pārveides tiešsaistē. Tikai šajā gadījumā lietotājs augšupielādē failus vietnē, izvēlas galīgo formātu un pēc tam lejupielādē rezultātu savā datorā. Piekrītu, salīdzinot ar pirmajām divām metodēm, tas nav ļoti ērti.
Secinājums
Tas ir viss, ko īsumā var teikt par BMP grafikas formātu. Acīmredzamu iemeslu dēļ problēmas tehniskā puse faila struktūras ziņā netika ņemta vērā. Maz ticams, ka šādi dati kaut ko pastāstīs vidusmēra lietotājam.
Bet nobeigumā es vēlos pievienot dažus vārdus par grafisko failu konvertēšanu nesaspiestā BMP formātā. Protams, tā pašreizējā versija aizņem mazāk vietas diskā. Bet tas joprojām atšķiras no modernākiem saspiesto datu veidiem. Principā pašu BMP formātu pat var saukt par nedaudz novecojušu, jo mūsdienās to izmanto tikai daži cilvēki. Tāpēc pašlaik saspiesto formātu konvertēšana grafiskos failos ar paplašinājumu .bmp šķiet nepārprotami nepraktiska.