internet pencereler Android
Genişletmek

Bmp uzantılı grafik dosyası. BMP dosya uzantısı nedir? Dosya yapısına genel bakış

Bmp dosya formatı raster bir görüntüdür ve oldukça popülerdir. Herhangi bir Windows işletim sistemi tarafından iyi "anlaşılır".

Bilgisayarınızda bmp uzantılı bir dosyanın açılması otomatik olarak gerçekleşmelidir - farenin sol tuşuyla üzerine çift tıklamanız yeterlidir.

Bu sizin için olmazsa, büyük olasılıkla dosya ilişkilendirmesi bozulmuştur, o zaman sistemin onu neyle açacağını manuel olarak belirlemesi gerekir.

Bunu yapmak için bmp dosyanıza sağ tıklayın, imleci "birlikte aç" satırına getirin ve istediğiniz herhangi bir programı (yüklüyse) seçin, örneğin Paint.

Bmp uzantısını açmak için hangi program

Bmp formatını açmanın en kolay yolu Windows fotoğraf albümü programındadır. İndirmenize gerek yok - işletim sistemiyle birlikte gelir, yani herkesin sahip olması gerekir.

İkinci program “Boya”dır. Ayrıca indirmenize gerek yoktur - varsayılan olarak Windows'ta yerleşiktir, ayrıca yalnızca bmp uzantısını düzenleyemezsiniz, aynı zamanda açtıktan sonra telefonunuzda görüntülemek için başka bir formatta (örneğin jpg) kaydedebilirsiniz.

Üçüncü program ise “PhotoScape”. İndirmeniz gerekecek. Ücretsizdir, Rusçadır ve onun yardımıyla görüntülemenin yanı sıra bmp görüntülerini de işleyebilirsiniz.

Dördüncü Paint.NET uygulaması. Aynı zamanda ücretsizdir, Rusça bir arayüze sahiptir, kullanışlı ve kullanımı çok kolaydır, görüntüleri ve fotoğrafları ayarlamak ve düzenlemek için birçok araç içerir - standart "Paint" in yerine geçer gibi

Beşinci program "GIMP". Photoshop'la karşılaştırılıyor. Bu, gerekli tüm işlevlere sahip ve basitliği ile öne çıkan, profesyonel kullanıma yönelik ücretsiz bir grafik düzenleyicidir.

Yukarıda verilen ve dosyaları bu formatta açan programların hepsi değildir. Düzinelerce var ama bunlar ortalama bir bilgisayar kullanıcısı için oldukça yeterli. İyi şanlar.

Bitmap görüntüsündeki metin nasıl gizlenir? Ne yazık ki bu konuyla ilgili herhangi bir konu bulamadım ve bu boşluğu doldurmaya karar verdim. Kesimin altında, bir bitmap'teki metni gizlemenin yanı sıra C#'taki bir uygulamayı da bulacaksınız.

Sorunun formülasyonu

Windows-1251 kodlamasındaki rastgele metni 24 bitlik bir bitmap görüntüsüne gizleyin ve onu bozulma olmadan geri çıkarın.

bmp dosya yapısı

Öncelikle size bitmap dosyasının ne olduğunu hatırlatayım. Tüm bunları çok iyi bildiğinize eminim, sunulan materyale göre metni gizleme algoritmasını açıklamak daha net olacaktır. Bu yüzden. Herhangi bir bmp dosyası dört bölümden oluşur:
  1. Dosya başlığı
  2. Resim başlığı (eksik olabilir)
  3. Palet (eksik olabilir)
  4. Görüntünün kendisi
Dosya başlığı, görüntünün bit derinliği de dahil olmak üzere hizmet bilgilerini içerir. Bu arada palet 24 bitlik bir çizim için kullanılmıyor. Sadece 24 bitlik görüntülerle çalışacağımızı ödevde açıkça belirttiğimiz için ideal olarak giriş görüntüsünün gereksinimlere uygunluğunu kontrol edebiliriz.
Şimdi görüntünün kendisine geçelim. Bildiğiniz gibi bmp formatı varsayılan olarak sıkıştırma sağlamaz (her ne kadar RLE algoritmasını kullanarak sıkıştırma desteği olsa da). Böylece bizim durumumuzdaki her piksel, her renk bileşeni için bir bayt olmak üzere 24 bit ile kodlanmıştır. Dolayısıyla ne daha fazlasını ne de daha azını, tam olarak 16777216 rengi kodlayabiliyoruz. Netlik sağlamak için işte bir resim:

Metin gizleme algoritması fikri

Muhtemelen fikrin ne olduğunu zaten tahmin etmişsinizdir. Sorun şu ki, ortalama bir insanın gözü (profesyonel bir sanatçı veya fotoğrafçı değil) yukarıda belirtilenden çok daha az rengi ayırt edebiliyor. Gözün kaç rengi ayırt edebildiği sorusuna tek bir kitapta bile net bir cevap yok ama karşılaştığım en büyük rakam 10 milyon. Buradan her renk bileşenine ayrılan sekiz bitin en az anlamlı olanlarından birkaçının ayırt edebildiği anlaşılıyor. bencil amaçlarımız, hedeflerimiz için ödünç alınabilir.
Birkaç sayı: örneğin, RGB bileşeninden iki düşük dereceli biti alıp açıkça çıkaralım. Yani 24 bitten tam olarak 262144 rengi kodlayabilen 18 bitimiz kalacak. Şimdi her karakterin 8 bit ile temsil edildiği Windows-1251 kodlamasındaki metni ele alalım. Basit matematiksel hesaplamalar sonucunda 4 pikselde 3 karakterin saklanabileceğini buluyoruz. Böylece 786432 pikselin olduğu 1024x768 görüntüde 589824 karakter saklayabilirsiniz. Fena değil, değil mi? Netlik sağlamak için iki resim vereceğim. Birincisinde orijinal görüntü, ikincisinde ise her renk bileşeninin en az anlamlı iki bitinin metinle doldurulduğu bir görüntü bulunur. Trafikten tasarruf etmek için görsellerin png'ye çevrilmesi için hemen rezervasyon yaptırayım.

Gerçek görüntü:


Metin içeren resim


Yakından bakıldığında ikinci resimde renkler daha soluk görünüyor. Evet öyle. Ancak siz ve ben, sunulan görüntüde bir şeylerin yanlış olduğunu biliyoruz ve eğer bilmeseydik, içinde bir tür metnin gizlendiğini tahmin edemezdik. Bu arada görselde gizli olan “Merhaba Dünya!!! =)" 100 kez çarpılır.
Bu kadar. Gördüğünüz gibi fikir son derece basit. Bu arada, sunulan yönteme LSB adı veriliyor (bahşiş için frol sayesinde). Son olarak C#'taki uygulamaya bakabilirsiniz.

C#'ta uygulama

Sunulan uygulama “Mükemmel Kod” ödülüne layık değildir; yalnızca açıklanan algoritmayı pratikte göstermektedir. Bu durumda kodun güzelliğinin değil, netliğinin peşindeydim.

Sprite'ı ekranda hareket ettiren küçük bir program düşünüldü ancak maalesef istediğimiz gibi görünmedi. Bu yazıda sprite'ı "düzeltmeye" çalışacağız.

Sprite görüntüsünü bir Bmp dosyasından elde ettik; aynı dosyalardan arka planın, fare imlecinin ve arayüz elemanlarının görüntüsünü alabiliriz. Ancak ekranda gördüklerimiz tam olarak beklediğimiz gibi değil: Görüntü ters çıktı ve üstelik olması gerekenden farklı renklerde. Öyleyse Bmp dosyalarını nasıl doğru okuyacağımızı ve resmi "tepeden tırnağa" nasıl çevireceğimizi öğrenelim.

Geliştiricilerin kararıyla Bmp dosya formatı belirli bir donanım platformuna bağlı değildir. Bu dosya dört bölümden oluşur: bir başlık, bir bilgi başlığı, bir renk tablosu (palet) ve görüntü verileri. Dosyada 24 bit (16 milyon renk) renk derinliğine sahip bir görüntü depolanıyorsa, renk tablosu eksik olabilir, ancak 256 renkli durumumuzda oradadır. 256 renkli bir görüntüyü saklayan bir dosyanın her bir bölümünün yapısı 'de verilmiştir ve karşılık gelen kayıt türleri de 'de verilmiştir.

Dosya başlığı şununla başlar: imzalar"BM" ve ardından dosyanın bayt cinsinden ifade edilen uzunluğu gelir. Sonraki 4 bayt daha sonraki format uzantıları için ayrılmıştır ve bu başlık sona erer yer değiştirme dosyanın başlangıcından, içinde kayıtlı görüntü verilerine kadar. 256 renkle bu ofset 1078'dir; önceki programımızda verilere ulaşmak için tam olarak bu kadarını atlamak zorunda kaldık.

Bilgi başlığı kendi uzunluğuyla başlar (bu değişebilir ancak 256 renkli bir dosya için 40 bayttır) ve görüntü boyutlarını, çözünürlüğü, renk sunum özelliklerini ve diğer parametreleri içerir.

Görüntü genişliği ve yüksekliği tarama noktalarında belirtilir ve muhtemelen açıklama gerektirmez.

Uçak sayısı düşük renk derinliğine sahip dosyalarda kullanılabilir. Renk sayısı 256 veya daha fazla olduğunda her zaman 1'e eşit olur, bu nedenle bu alan artık eski sayılabilir, ancak uyumluluk amacıyla korunur.

Renk derinliği rengin bir dosyada temsil edilme biçiminin en önemli özelliği olarak kabul edilir ve nokta başına bit cinsinden ölçülür. Bu durumda 8'e eşittir.

Sıkıştırma. Genellikle Bmp dosyalarında kullanılmaz ancak başlıkta bunun için bir alan sağlanır. Tipik olarak 0'dır, bu da görüntünün sıkıştırılmadığı anlamına gelir. Gelecekte yalnızca bu tür dosyaları kullanacağız.

Görüntü boyutu- palet verileri hariç, bu görüntüyü saklamak için gereken bayt bellek sayısı.

Yatay ve dikey çözünürlükler metre başına tarama noktaları olarak ölçülür. Taranan görüntülerin ölçeğini korumak için özellikle önemlidirler. Grafik düzenleyiciler kullanılarak oluşturulan görsellerin bu alanlarında genellikle sıfır bulunur.

Renk sayısı görüntü gerçekte seçilen renk derinliğinin izin verdiğinden daha az renk içeriyorsa, palet tablosunun boyutunu küçültmenize olanak tanır. Ancak pratikte bu tür dosyalar neredeyse hiç bulunmaz. Renk sayısı, renk derinliğinin izin verdiği maksimum değerse (örneğin 8 bitte 256 renk), alan sıfıra ayarlanır.

Ana renk sayısı- paletin başından gelir ve bozulma olmadan görüntülenmesi tavsiye edilir. Bu alan, maksimum ekran rengi sayısı Bmp dosya paletindekinden az olduğunda önemlidir. Formatı geliştirirken, en sık görülen renklerin tablonun başında yer alacağı açıkça varsayılmıştır. Artık bu gerekliliğe pratikte uyulmuyor, yani renkler dosyada bulunma sıklığına göre sıralanmıyor. Bu çok önemlidir, çünkü aynı renklerden oluşsa bile iki farklı dosyanın paletleri bunları (renkleri) farklı bir sırada içerecektir ve bu da bu tür görüntülerin ekranda eşzamanlı olarak görüntülenmesini önemli ölçüde karmaşıklaştırabilir.

Bilgi başlığını, 256 (renk sayısı olarak) 4 baytlık alandan oluşan bir dizi olan bir renk tablosu izler. Her alan paletteki bir renge karşılık gelir ve dört bayttan üçü o rengin mavi, yeşil ve kırmızı bileşenlerine karşılık gelir. Her alanın son ve en önemli baytı ayrılmıştır ve 0'a eşittir.

Renk tablosundan sonra, tarama çizgileri boyunca aşağıdan yukarıya ve çizginin içinde soldan sağa yazılan görüntü verileri vardır. Bazı platformlarda 4 bayttan küçük bir veri birimini okumak mümkün olmadığından, her satırın uzunluğu 4 baytlık bir sınıra göre hizalanır, yani satır uzunluğu dördün katı değilse, satır uzunluğu 4 baytla doldurulur. sıfırlar. Dosyayı okurken bu durum dikkate alınmalıdır, ancak önceden tüm görüntülerin yatay boyutlarının 4'ün katı olduğundan emin olmak daha iyi olabilir.

Daha önce de söylediğimiz gibi, dosya formatı çeşitli platformlar için evrensel olacak şekilde tasarlandı, bu nedenle palet renklerinin, VGA için alışılmış olandan farklı şekilde saklanması şaşırtıcı değil. Okuma işlemi sırasında gerekli yeniden kodlama gerçekleştirilir. (VGA paletinin ne olduğundan ve onunla nasıl çalışılacağından ilerleyen yazılarımızda bahsedeceğiz.)

256 renkli Bmp dosyalarını okumaya yönelik modülün yalnızca iki prosedürü vardır. Listeden de görülebileceği gibi görüntü boyutlarının ReadBMP dosya okuma prosedürüne aktarılması gerekmektedir. Görüntünün tamamen okunması gerekmiyorsa bu kullanışlıdır. Boyutlar önceden bilindiğinde bu sorun yaratmaz, ancak modülümüzü kullanarak boyutu önceden bilinmeyenler de dahil olmak üzere herhangi bir resmi okumak mümkün olsaydı iyi olurdu. Bu amaçla yalnızca dosya başlığını okuyan ReadBMPheader prosedürü sağlanmıştır. Bunu çağırarak, görüntünün seçilen 256 renkli formatta kaydedilip kaydedilmediğini kontrol edebilir, boyutlarını öğrenebilir ve ancak daha sonra onun için bellek ayırabilir ve ayrılan ara belleğe yerleştirebilirsiniz.

Şimdi programımıza yeni bir modül bağlayalım. Bunu yapmak için, kullanım yönergesine adını yazacağız ve ayrıca paletle ilgili verileri depolamak için şu şekilde tanımlanabilecek bir dizi sağlayacağız:

P: bayt dizisi;

Yeni bir modülden dosya okuma işlemini başlatan CreateSprite prosedürü basitleştirilmiştir (bkz.).

Bmp dosya yapısı

İsim Uzunluk Ön yargı Tanım
Dosya başlığı (BitMapFileHeader)
Tip2 0 İmza "BM"
Boyut4 2 Dosya boyutu
1 adet rezerve edildi2 6 Rezerve
2 adet rezerve edildi2 8 Rezerve
OfsetBitler4 10 Dosyanın başından itibaren görüntü ofseti
Bilgi başlığı (BitMapInfoHeader)
Boyut4 14 Başlık uzunluğu
Genişlik4 18 Görüntü genişliği, noktalar
Yükseklik4 22 Görüntü yüksekliği, noktalar
Yüzeyleri2 26 Uçak sayısı
Bit Sayısı2 28 Renk derinliği, nokta başına bit sayısı
Sıkıştırma4 30 Sıkıştırma türü (0 - sıkıştırılmamış resim)
BoyutResim4 34 Resim boyutu, bayt
XpelsPerMeter4 38 Yatay çözünürlük, metre başına nokta sayısı
YpelsPerMeter4 42 Dikey çözünürlük, metre başına nokta sayısı
Kullanılan Renkler4 46 Kullanılan renk sayısı (0, belirli bir renk derinliği için mümkün olan maksimum değerdir)
RenklerÖnemli4 50 Ana renk sayısı
Renk tablosu (palet)
Renk Tablosu1024 54 4 baytlık 256 öğe
Görüntü Verileri (BitMap Dizisi)
ResimBoyut1078 Soldan sağa ve aşağıdan yukarıya satırlar halinde kaydedilen görüntü

Listeleme 1

birim bpread; (Bmp ile çalışma prosedürleri) arayüz tipi arttype = arrayof byte; arptr = ^arttype; bmFileHeader = kayıt (dosya başlığı) Typf: word; (imza) Boyut: longint; (bayt cinsinden dosya uzunluğu) Res1: word; (ayrılmış) Res2: kelime; (ayrılmış) OfBm: longint; (bayt cinsinden görüntü ofseti (1078)) end; bmInfoHeader = kayıt (bilgi başlığı) Boyut: longint; (bayt cinsinden başlık uzunluğu (40)) Widt: longint; (görüntü genişliği (piksel olarak)) Heig: longint; (görüntü yüksekliği (piksel olarak)) Plan: word; (düzlem sayısı (1)) BitC: word; (renk derinliği (nokta başına bit sayısı) (8)) Comp: longint; (sıkıştırma türü (0 - hayır)) SizI: longint; (bayt cinsinden görüntü boyutu) XppM: longint; (yatay çözünürlük) ((metre başına nokta - genellikle 0)) YppM: longint; (dikey çözünürlük) ((metre başına nokta - genellikle 0)) NCoL: longint; (renk sayısı) ((izin verilen maksimum değer 0 ise)) NCoI: longint; (ana renklerin sayısı) sonu; bmHeader = kayıt (tam dosya başlığı) f: bmFileHeader; (dosya başlığı) i: bmInfoHeader; (bilgi başlığı) p: bayt dizisi; (palet tablosu) sonu; bmhptr = ^bmBaşlığı; (bir Bmp dosyasından bir görüntünün okunması) prosedürü ReadBMP(image:arptr; (görüntü içeren dizi) xim,yim:word; (boyutlar) pal:arptr; (palette) dosya adı:string); (dosya adı) (Bmp dosya başlığını okuma) prosedürü ReadBMPheader(header:bmhptr;filename:string); uygulama ($R-) (bir Bmp dosyasından bir görüntünün okunması) prosedürü ReadBMP(image:arptr; xim,yim:word; pal:arptr; dosya adı:string); var h: bmHeader; i:tamsayı; bmp dosyası: dosya; s: uzunlamasına; atamaya başla(bmpdosyası,dosyaadı); sıfırla(bmpdosyası,1); blokoku(bmpfile,h,sizeof(h)); (başlığı oku) for i:= 0'dan yim-1'e do begin (satır satır oku) blokoku(bmpfile,image^[(yim-i-1)*xim],xim); eğer (xim mod 4)<>0 sonra blokoku(bmpfile,s,4 - (xim mod 4)); son; kapat(bmpdosyası); i ^= 0 ila 255 için do begin (palet dönüşümü) pal^ := h.p shr 2; (mavi) pal^ := h.p shr 2; (yeşil) pal^ := h.p shr 2; (kırmızı) uç; son; (bir Bmp dosyasının başlığını okuma) prosedür ReadBMPheader(header:bmhptr;filename:string); var bmp dosyası:dosya; atamaya başla(bmpdosyası,dosyaadı); sıfırla(bmpdosyası,1); blokoku(bmpfile,başlık^,sizeof(başlık^)); kapat(bmpdosyası); son; son.

Listeleme 2

( sprite) prosedürü CreateSprite(s:string; x,y,dx,dy:integer); var f: dosya; (hareketli görüntü içeren dosya) begin getmem(Sprt.Img,sizeof(SpriteArrayType)); (sprite için bellek ayırın) getmem(Sprt.Back,sizeof(SpriteArrayType)); (arabellek için bellek ayırın) Readbmp(@(Sprt.Img^),Xsize,Ysize,@p,s); Sprt.x:= x; Sprt.y:=y; (başlangıç ​​değerlerini ayarlayın) Sprt.dx:= dx; (koordinatlar ve artışlar) Sprt.dy:= dy; son;

BMP dosya formatı (BitMaP'nin kısaltması), Windows için yerel raster grafik formatıdır çünkü sistemin tarama dizilerini depoladığı yerel Windows formatına en yakın şekilde eşleşir. BMP formatında en sık kullanılan dosya adı uzantısı BMP'dir, ancak bazı dosyalar çalışma uzunluğu kodlaması anlamına gelen RLE uzantısına sahiptir. Bir dosya adının RLE uzantısı genellikle dosyanın raster bilgilerinin, BMP formatındaki dosyalar için geçerli olan iki RLE sıkıştırma yönteminden biri kullanılarak sıkıştırıldığını gösterir.

BMP dosyalarında her pikselin renk bilgisi 1, 4, 8, 16 veya 24 bit (bit/piksel) olarak kodlanır. Renk derinliği olarak da adlandırılan piksel başına bit sayısı, bir görüntüdeki maksimum renk sayısını belirler. 1 bit/piksel derinliğe sahip bir görüntü yalnızca iki renge sahip olabilir; 24 bit/piksel derinliğe sahip bir görüntü ise 16 milyondan fazla farklı renge sahip olabilir.

Aşağıdaki şema, 256 renkli bir görüntü (8 bit/piksel derinliği) içeren tipik bir BMP dosyasının yapısını gösterir. Dosya dört ana bölüme ayrılmıştır: taramalı grafik dosya başlığı, tarama dizisi bilgi başlığı, renk tablosu ve tarama dizisi verilerinin kendisi. Bir taramalı grafik dosyasının başlığı, tarama dizisi veri alanının başladığı adres de dahil olmak üzere, dosya hakkında bilgi içerir. Raster dizisi bilgi başlığı, dosyada saklanan görüntü hakkında, piksel cinsinden yüksekliği ve genişliği gibi bilgileri içerir. Renk tablosu görüntüde kullanılan renklere ait RGB (kırmızı, yeşil, mavi) ana renk değerlerini sağlar. BMP dosyalarını okuyan ve görüntüleyen programlar, 256'dan fazla rengin görüntülenmesine izin vermeyen video bağdaştırıcıları kullanıldığında, doğru renk üretimi için bağdaştırıcıların renk paletlerinde bu tür RGB değerlerini programlı olarak ayarlayabilir.

Bir BMP dosyasındaki gerçek tarama dizisi verilerinin formatı, her piksel için renk verilerini kodlamak için kullanılan bit sayısına bağlıdır. 256 renkli bir görüntüde, dosyanın gerçek tarama dizisi verilerini içeren kısmındaki her piksel bir bayt (8 bit) ile tanımlanır. Bu piksel açıklaması RGB renk değerlerini temsil etmez ancak dosyanın renk tablosuna girmek için bir işaretçi görevi görür. Böylece, eğer R/G/B=255/0/0, bir BMP dosyasının renk tablosunda ilk RGB renk değeri olarak saklanırsa, tarama dizisindeki 0 pikselinin değerine parlak kırmızı renk atanacaktır. Piksel değerleri, görüntünün alt satırından başlayarak (genellikle) soldan sağa sırayla saklanır. Böylece, 256 renkli bir BMP dosyasında raster dizi verilerinin ilk baytı, görüntünün sol alt köşesinde bulunan pikselin renginin indeksidir; ikinci bayt, sağa bitişik pikselin renginin indeksini temsil eder, vb. Her satırdaki bayt sayısı tek ise, tarama dizisi verilerini 16 bitlik sınırlara hizalamak için her satıra fazladan bir bayt eklenir. .


Tüm BMP dosyalarının şemada gösterilene benzer bir yapısı yoktur. Örneğin, 16 ve 24 bit/piksel BMP dosyalarının renk tabloları yoktur; bu dosyalarda raster dizisinin piksel değerleri doğrudan RGB renk değerlerini karakterize eder. Dosyanın ayrı bölümlerinin dahili depolama formatları da farklı olabilir. Örneğin, bazı 16 ve 256 renkli BMP dosyalarındaki tarama dizisi bilgisi, aynı görüntü piksellerinin dizilerini, dizideki piksel sayısını ve renklerini belirten belirteçlerle değiştiren RLE algoritması kullanılarak sıkıştırılabilir. Windows'ta, çeşitli raster dizi başlığı ve renk tablosu formatlarını kullanan OS/2 tarzı BMP dosyalarıyla çalışabilirsiniz.

Çoğu zaman grafiklerle çalışırken birçok kullanıcı BMP formatındaki görüntülerle karşılaşır. Bugün çok az insan bunun ne olduğunu biliyor. Şimdi BMP grafik formatına daha detaylı bakacağız. Üstelik sadece kökeninin ve gelişiminin tarihini takip etmeyeceğiz, aynı zamanda onu diğer popüler formatlara dönüştürmek için bazı basit yöntemler de sunacağız.

BMP formatı nedir?

Çok fazla teknik detaya girmeyelim. BMP'nin, grafik görüntüleri tek katmanlı taramalara dayalı bir bitmap biçiminde depolamak için kullanılan bir format olduğunu unutmayın.

Evet bu doğru. Başlangıçta, BMP görüntü formatı yalnızca raster görüntülere uygulandı ve genel olarak tüm grafikler için evrensel (standart) bir uzantıydı.

Menşe tarihi

Bu formatın yaratılışının tarihi, onu ilk kez ana beyin çocuğu olan Windows işletim sisteminde uygulayan Microsoft Corporation ile ayrılmaz bir şekilde bağlantılıdır. Ayrıca Apple ile sürekli rekabete rağmen, bu tür grafiklere yönelik destek daha sonra OS/2 işletim sistemi için de duyuruldu.

Doğru, o zamandan beri BMP grafik formatı birçok değişikliğe uğradı. Başlangıçta bir görüntünün yapısının, bugün piksel olarak bilinen küçük karelerin birleşiminden oluştuğu varsayılmıştı. Bir görüntüdeki her pikselin farklı bir renk derinliğine (bu tür grafik birimi başına bit sayısı) ilişkin verileri içerebileceğine inanılmaktadır. Renk bit derinliğini belirtmek için kullanılan değerler şu şekildedir: 1, 2, 4, 8, 16, 24, 32, 48, 64 bit.

Bu durumda, 8'den küçük değerler için, renk yalnızca renk paleti (tablosu) indeksi kullanılarak gösterilir ve indeksin üzerindeki değerler için standart RGB modelinden alınır. İkincisi, kırmızı, yeşil ve mavinin karıştırılmasıyla elde edilen renk çeşitlemelerini içerir.

Zaten açık olduğu gibi, bit derinliği ne kadar yüksek olursa, son görüntünün boyutu da o kadar büyük olacaktır. BMP dosya formatının hem o uzak zamanlarda hem de bugün bir tür mastodona benzediği söylenmelidir çünkü boyutu oldukça büyüktür. Bunun nedeni, örneğin aynı JPG formatıyla karşılaştırıldığında görüntünün kendisinin sıkıştırılmamış olmasıdır. Aynı görüntüyü içeren farklı uzantı türlerine sahip dosyaların boyutu yalnızca yüzlerce - onbinlerce kez farklılık gösterebilir.

BMP dosya formatı nasıl açılır?

Bu tür görüntüleri açmaya gelince, herhangi bir Windows işletim sistemi bunun için yerleşik araçlara sahiptir.

Görüntüleme uygulamaları oluşturulana kadar ana düzenleme aracı, Windows'un herhangi bir sürümünde bulunan yerel Paint programı olarak kaldı. O zamanlar bu uygulama yalnızca BMP formatını destekliyordu.

Zaten açıkça görüldüğü gibi, teknolojinin gelişmesi ve formatın kendisinin gelişmesiyle birlikte program da değişti. Bugün Paint'in yetenekleri ilk versiyonlarına göre çok daha fazladır.

Ayrıca grafikleri görüntüleme ve düzenleme programlarının ortaya çıkmasıyla birlikte BMP dosya formatı teknik destekte ve bunlarda duyuruldu. Bugün bilinen hemen hemen tüm resim dosyası uzantılarının "büyük büyükbabası" olduğu için bu şaşırtıcı değil.

Bu tür grafik verileriyle çalışmak için birçok program bulabilirsiniz. Görüntüleme araçları arasında, örneğin Windows'ta standart bir araç kullanabilirsiniz; üçüncü taraf uygulamalar arasında ACDSee veya Irfan View gibi yazılım paketleri ve diğerleri oldukça popülerdir.

Düzenlemeye gelince, iş için her şeyi kullanabilirsiniz, örneğin aynı Adobe Photoshop, Corel Draw veya minimum araç ve yetenek setine sahip başka herhangi bir grafik düzenleyici.

BMP formatını dönüştürmenin en basit yolu

Şimdi BMP formatını en basit yollarla nasıl değiştireceğimizi görelim. Bunu yapmak için aynı grafik editörlerini kullanabilirsiniz.

Örnek olarak standart Paint uygulamasını ele alırsak, içinde öncelikle istenilen BMP dosyası açılır, ardından kökte, alt satırda yer alan “Dosya” menüsünden “Farklı Kaydet...” komutu seçilir. (açılır menü), desteklenen formatları bulabilirsiniz.

Aslında, başka herhangi bir grafik düzenleyicide, bir bitmap'i dönüştürme teknolojisi yukarıda açıklanana benzer. Bazı uygulamalarda, prensip olarak pek farklı olmayan dışa aktarma komutlarını da bulabilirsiniz, çünkü bunları kullanırken tüm prosedür, orijinal BMP dışında desteklenen başka bir grafik formatının seçilmesine indirgenir.

Dönüştürücüleri kullanma

Farklı türde bir görüntüyü BMP formatına dönüştürmenin en kolay yollarından biri, standart Windows araçlarını ve grafik düzenleyicilerini kullanmanın yanı sıra, otomatik olarak çalışan özel dönüştürücüler kullanmaktır.

Burada her şey basit. Kullanıcı dönüştürülecek grafik dosyalarını program penceresine ekler, ardından son formatı seçer (bu durumda BMP) ve dönüştürme işlemini başlatmak için düğmeye basar. Yeni formdaki son dosyalar, konumu uygulamada varsayılan olarak ayarlanan veya manuel olarak belirtilen klasöre kaydedilecektir.

Bu arada, BMP formatını başka bir formata dönüştürmeniz gerektiğinde aynı durum ters işlem için de geçerlidir.

İnternette bu alandaki pek çok program sayesinde, bu tür dönüşümleri çevrimiçi olarak gerçekleştirmenize olanak tanıyan birçok kaynak bulabilirsiniz. Ancak bu durumda kullanıcı dosyaları siteye yükler, son formatı seçer ve ardından sonucu bilgisayarına indirir. Katılıyorum, ilk iki yöntemle karşılaştırıldığında pek uygun değil.

Çözüm

Kısaca BMP grafik formatı hakkında söylenebilecek tek şey bu. Açık nedenlerden dolayı konunun dosya yapısı açısından teknik tarafı dikkate alınmadı. Bu tür verilerin ortalama kullanıcıya bir şey söylemesi pek olası değildir.

Ancak sonuç olarak grafik dosyalarını sıkıştırılmamış BMP formatına dönüştürme hakkında birkaç kelime eklemek istiyorum. Elbette mevcut sürümü daha az disk alanı kaplıyor. Ancak yine de daha modern sıkıştırılmış veri türlerinden farklıdır. Prensip olarak, bugün çok az kişi kullandığı için BMP formatının kendisi biraz eski bile denilebilir. Bu nedenle, sıkıştırılmış formatları .bmp uzantılı grafik dosyaları türüne dönüştürmek şu aşamada açıkça pratik görünmüyor.