BMP

— ციფრული გამოსახულების სახე -ის და -ის მიერ განვითარებული.ეს არის გამოსახულების ერთ-ერთი ყველაზე მარტივი სახე განვითარებისთვის და პროგრამების გამოყენებისთვის. ის არის წაკითხვადი თითქმის ყველა სურათის შემდგენელი მოწყობილობისთვის.

ის ეხება მატრიცულ გამოსახულებებს.

ფაილის ორგანიზება
ფაილი იყოფა სამ ზონად(ნაწილად):

ფაილის დასაწყისი;
ფერების პალიტრა;
გამოსახულების შესაბამისი მონაცემები.

ფაილის დასაწყისი
ის თავისმხრივ იყოფა ორ ნაწილად:

ფაილის შესაბამისი მონაცემები,
გამოსახულების შესაბამისი მონაცემები.

განსაკუთრებით აღსანიშნავია ფაილის ზომა ბაიტებში, სურათში ბიტების რაოდენობა პიქსელების მიხედვით, შეკუმშვის გამოყენებული ტიპი, ფერების რაოდენობა პალიტრაში, გამოსახულების სიგრძე და სიგანე და ა.შ.

პალიტრა
კითხვის პროგრამები იყენებენ სამ ბაიტს ფერების დასაშიფრად (სამმაგი ფერის სისტემას. წითელი, მწვანე, ცისფერი):

-ში_24ბიტი (1 ბაიტი წითელი, 1 ბაიტი მწვანე, 1 ბაიტი ცისფერი), პალიტრა არ არის საჭირორადგან აქ შეგვიძლია ყველა ფერის წარმოდგენა.
-ში_8ბიტი არ შეგვიძლია 256 ფერზე მეტის წარმოდგენა, საჭიროა განვსაზღვროთ შესაბამისობა პიქსელის ფერებს შორის და სამ შემადგენელ ფერს შორის. ანუ ფაილის თავში დაემატა ცხრილი, რომელიც სამმაგი ფერის (წითელი, მწვანე, ცისფერი) რომელიც 0-255 ინტერვალიდან თითოეულ მნიშვნელობას უსაბამებს შესაბამის შედეგს.

პალიტრა შეიძლება წარმოვადგინოთ შემდეგი ცხრილით:

მაგალითად ნაცრისფერი სურათისთვის სამივე ფერის მნიშვნელობა იქნება ერთი და იგივე და იმეტყევებს 0-255 ინტერვალში.

ფერების რაოდენობა
ეს ფორმატი შეიცავს რამდენიმე ვარიანტს, შესაძლებელი ფერების რაოდენობის მიხედვით. ფერების სიღრმე არის თითოეულ პიქსელთან ასოცირებული ბიტების რაოდენობა,რომელიც გამოიყენება ფერების დაშიფრისთვის.

 გამოსახულება შეიძლება წარმოდგენილი იყოს 2 ფერში(1 ბიტი, 16 ფერში (4 ბიტი), 256 ფერში (8 ბიტი), 65 536 ფერში (16 ბიტი) ან 16.8მილიონ ფერში (24ბიტი).

ფაილის ზომა
 ფორმატი არის თითქმის არარსებული ბრაუზერზე და ის არ არის შეკუმშული. მაგრამ მიუხედავად ამისა არსებობს შეკუმშვის ტიპი ფორმატისთვის.

 ფაილის მიახლოებითი ზომის გამოსათვლელად, ფერების სიღრმეს (1, 4, 8, 16, ან 24 ბიტი) ვამრავლებთ
პიქსელების სიღრმეზე და სიგანეზე. ანუ (ფერების სიღრმე ბიტებში)(სიმაღლეზე პიქსელებში)(სიგანეზე პიქსელებში).
მაგალითად, გვაქვს 800600-ზე გამოსახულება. (800 პიქსელი სიგანით და 600 პიქსელი სიმაღლით) 24 ბიტში (16.8 მილიონი ფერი. მას ექნება შემდეგი ზომა: (80060024) ბიტი ან 1.4 მეგაოქტეტი

გამოსახულების მონაცემების განლაგება
უმეტეს შემთხვევაში გამოსახულების ფორმატის, გამოსახულების პიქსელების დაშიფრვა იწყება გამოსახულების ყველაზე პატარა (მცირე) ხაზიდან. თითოეული ხაზი (დაშიფრულია მარცხნიდან მარჯვნივ) უნდა იკავებდეს 4-ის ჯერადი რაოდენობის ოქტეტებს, იმ შემთხვევის გარდა თუ გამოსახულება არაა შეკუმშული. თუ ხაზი არ შეიცავს 4-ის ჯერადი რაოდენობის ოქტეტებს, მაშინ ხაზს ვავსებთ 0ების დამატებით.

თუ გამოსახულება დაშიფრულია 24 ბიტით, თითოეულ პიქსელს შეესაბამება 24 ბიტის შესაბამისი მთელი რიცხვი.

თუ გამოსახულება დაშიფრულია 24 ბიტზე ნაკლები რაოდენობით, თითოეული პიქსელი დაშიფრულია ფერების ცხრილში არსებული ინდექსებით. და ასეთ გამოსახულებას ინდექსირებულ გამოსახულებას უწოდებენ. ამ შემთხვევაში გამოსახულების პიქსელები იშიფრებიქნ 1 ან 4 ბიტით, ანუ თუ ბევრი პიქსელია ერთი და იგივე ბიტით დაშიფრული, მაშინ უფრო მეტწონიანი ბიტები ეხებიან ყველაზე მარცხნივ მდგომ პიქსელს.

შეკუმშვა
 ფორმატი საშუალებას გვაძლევს გამოვიყენოთ შეკუმშვის ალგორითმი 8 ბიტიანი (256 ფერი) და 4 ბიტიანი (16 ფერი) გამოსახულებებისთვის.

პრინციპი:

ოქტეტი მუთავსებულია 1-255 ინტერვალში, უთითებ პიქსელების რაოდენობას რომლისთვისაც უნდა გამოიყენო შემდეგი ოქტეტის შემცველი ინფორმაცია.
თუ ოქტეტში არის ნულები, მაშინ ის სპეციალურ მოქმედებას გულისხმობს.
თუ ის არის 0, ხაზის დასასრული მიღწეულია და გადადის შემდეგ ხაზზე.
თუ ის არის 1, გამოსახულების დასასრული მიღწეულია და ამთავრებს კითხვას.
თუ ის არის 2, ახტება ცოლონას და სვეტს სანამ გააგრძელებს. ( და არიან დაშიფრულები 1ოქტეტით).
თუ ის არის 3-255 ინტერვალში, მაშინ ის ეხება პიქსელების იმ რაოდენობას რომლებიც შემდგომ მოდის და დაშიფრულია როგორც მონაცემები შეუკუმშავად. ამ შემთხვევაში უნდა გამოვტოვოთ არასაჭირო ოქტეტები იმ მიზნით რომ ოქტეტების რაოდენობა იყოს ლუწი.