Windows Bitmap (.bmp)

Microsoft Τυπικό

Το Bitmap Image File (BMP) είναι η βασική μορφή γραφικών ράστερ της Microsoft, ανεξάρτητη από τη συσκευή. Αποθηκεύει ασυμπίεστες ή συμπιεσμένες με RLE γραμμές σάρωσης και είναι άμεσα συμβατή με το framebuffer του υλικού.

Μετατροπή BMP σε PNG

Δωρεάν μετατροπέας από BMP σε PNG εντός του προγράμματος περιήγησης. Μετατρέψτε αρχεία άμεσα στη συσκευή σας.

Επιθεώρηση & Μεταδεδομένα

Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία BMP ελέγχοντας την αρχική δυαδική ακολουθία byte:

Επιλέξτε ή αποθέστε αρχεία εδώ

Ιδιωτικά - τα αρχεία δεν φεύγουν ποτέ από τη συσκευή σας

ή επικόλληση Ctrl+V
Εγγύηση Απορρήτου Μηδενικής Μετάδοσης Δικτύου: Δεν μεταφορτώνεται κανένα byte σε εξωτερικούς διακομιστές. Όλη η επεξεργασία γίνεται τοπικά στο απομονωμένο περιβάλλον του προγράμματος περιήγησής σας.

Υπογραφή κεφαλίδας σε επίπεδο byte (Magic Bytes)

Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία BMP ελέγχοντας την αρχική δυαδική ακολουθία byte:

ΔΕΚΑΕΞΑΔΙΚΗ ΥΠΟΓΡΑΦΗ (OFFSET 0):

42 4D

ΑΝΑΠΑΡΑΣΤΑΣΗ ASCII: BM

Τυποποίηση: Microsoft Windows Device-Independent Bitmap (DIB) Architecture

Τεχνικές Προδιαγραφές

Αρχιτεκτονική ΠεριέκτηΚεφαλίδα BITMAPFILEHEADER και κατόπιν BITMAPINFOHEADER (DIB) και πίνακας εικονοστοιχείων ράστερ
ΣυμπίεσηΑσυμπίεστες ακατέργαστες γραμμές σάρωσης ή προαιρετική κωδικοποίηση μήκους ακολουθιών BI_RLE8 / BI_RLE4
Σειρά byte (endianness)Μικρής διάταξης (Little-Endian, διάταξη byte Intel x86)
Χρωματικοί ΧώροιDevice Dependent RGB, sRGB (BITMAPV5HEADER embedded)
Κανάλια & ΔομήΜονόχρωμο 1 bit, με παλέτα 4 bit / 8 bit, RGB 16 bit / 24 bit ή RGBA 32 bit
Μέγιστες Διαστάσεις2,147,483,647 x 2,147,483,647 εικονοστοιχεία (προσημασμένος ακέραιος 32 bit)
ΔιαφάνειαΥποστηρίζεται μάσκα άλφα BGRA 32 bit στις σύγχρονες μορφές BITMAPV3HEADER και V5HEADER
Ροή δεδομένων και προοδευτική φόρτωσηΔεν υποστηρίζει ροή· οι γραμμές σάρωσης αποθηκεύονται ανάποδα (από κάτω προς τα πάνω), εκτός αν το ύψος είναι αρνητικό

Τεχνικός Πίνακας Σύγκρισης: BMP έναντι Ανταγωνιστών

Τεχνικό χαρακτηριστικόBMP (Τρέχον)PNGTIFFJPG
Λειτουργία συμπίεσηςΑσυμπίεστο / Ελάχιστο RLEΧωρίς απώλειες Deflate (~70% μικρότερο)Ασυμπίεστο / LZW / ZipDCT με απώλειες (~90% μικρότερο)
Ταχύτητα αποκωδικοποίησηςΣτιγμιαία αντιγραφή μνήμηςΑπαιτεί αποσυμπίεση DeflateΑπαιτεί αποσυμπίεση LZW/ZIPΑπαιτεί υπολογισμό IDCT
Σειρά γραμμών σάρωσηςΑπό κάτω προς τα πάνω (αντιστραμμένη)Από πάνω προς τα κάτωΑπό πάνω προς τα κάτω / ΛωρίδεςΜπλοκ MCU από πάνω προς τα κάτω
Καταλληλότητα για τον ιστόΠολύ κακή (διογκωμένα ωφέλιμα φορτία)Εξαιρετική για γραφικάΚακή (επιτραπέζια σελιδοποίηση)Εξαιρετική για φωτογραφία

Συνήθεις τρόποι καταστροφής δεδομένων και οδηγός ανάκτησης δεκαεξαδικών δεδομένων

Η εικόνα αποδίδεται διαγώνια κομμένη ή στραβή υπό γωνία.

Βασική Αιτία: Εσφαλμένος υπολογισμός συμπλήρωσης γραμμών (αποτυχία συμπλήρωσης κάθε γραμμής σάρωσης σε όριο 4 byte).

Ανάκτηση: Κωδικοποιήστε ξανά με το Image Converter του File2File.app για να διασφαλίσετε το σωστό βήμα γραμμής σάρωσης 32-bit.

Ανάλυση ασφάλειας και διανύσματα επίθεσης στον αναλυτή

Οι αποκωδικοποιητές BMP συχνά υποφέρουν από ανάγνωση πέρα από τα όρια του buffer κατά την κατανομή buffer με βάση μη έμπιστες διαστάσεις κεφαλίδας DIB.

Γνωστά διανύσματα επίθεσης

  • Υπερχείλιση ακεραίων στον υπολογισμό width * height * bpp που οδηγεί σε μικρή κατανομή σωρού (heap) και εγγραφή εκτός ορίων.
  • Κατεστραμμένες ακολουθίες διαφυγής μήκους ακολουθίας RLE8/RLE4 που προκαλούν εγγραφές μνήμης πέρα από το κατανεμημένο buffer.
  • Άρνηση υπηρεσίας μέσω κατανομής μνήμης πολλαπλών gigabyte που πυροδοτείται από κατασκευασμένες διαστάσεις κεφαλίδας.

Βέλτιστες αμυντικές πρακτικές: Επικυρώστε αυστηρά τα όρια πλάτους, ύψους και βάθους bit της κεφαλίδας DIB πριν από την κατανομή της μνήμης προορισμού.

Ιστορική Αναδρομή & Ορόσημα

1998Τα Windows 98 εισάγουν το BITMAPV5HEADER, προσθέτοντας διαχείριση χρωματικού προφίλ ICC και διόρθωση γάμα.
1990Τα Windows 3.0 τυποποιούν την προδιαγραφή DIB BITMAPINFOHEADER σε ολόκληρο το λειτουργικό σύστημα.
1987Εισήχθη με τα Windows 2.0 και OS/2 1.1 ως η εγγενής μορφή ράστερ οθόνης.

Κύρια Πλεονεκτήματα

  • Μηδενική υποβάθμιση συμπίεσης: 100% ακριβής αποθήκευση pixel σε επίπεδο bit χωρίς καθόλου τεχνουργήματα συμπίεσης.
  • Τα Windows διαθέτουν εγγενή κωδικοποιητή BMP, ενώ η υποστήριξη σε άλλα λειτουργικά συστήματα και εφαρμογές διαφέρει.
  • Η απλή αποκωδικοποίηση το καθιστά ιδανικό για ενσωματωμένους μικροελεγκτές και για τη διδασκαλία προγραμματισμού γραφικών.

Τεχνικοί Περιορισμοί & Μειονεκτήματα

  • Τεράστια μεγέθη αρχείων λόγω έλλειψης σύγχρονης συμπίεσης εντροπίας όπως το DEFLATE ή η κωδικοποίηση Huffman.
  • Αποτελεί αναποτελεσματική επιλογή για μετάδοση στον ιστό ή διανομή σε δίκτυα κινητής τηλεφωνίας.
  • Η σειρά γραμμών σάρωσης από κάτω προς τα πάνω απαιτεί κατακόρυφη αντιστροφή γραμμών σε σύγχρονες ροές εργασίας γραφικών από πάνω προς τα κάτω.

Ενδιαφέροντα Τεχνικά Στοιχεία

  • Το BMP αποθηκεύει τις γραμμές σάρωσης εικόνας ανάποδα (από κάτω προς τα πάνω) από προεπιλογή λόγω του μαθηματικού καρτεσιανού συστήματος συντεταγμένων που χρησιμοποιείται στο OS/2.
  • Εάν η τιμή του ύψους στην κεφαλίδα BMP οριστεί σε αρνητικό αριθμό, η εικόνα αποκωδικοποιείται με τη σωστή πλευρά προς τα πάνω (από πάνω προς τα κάτω).
  • Κάθε γραμμή σάρωσης σε ένα αρχείο BMP πρέπει να συμπληρώνεται με μηδενικά σε πολλαπλάσιο των 4 byte (ευθυγράμμιση ορίων 32-bit).

Συχνές Τεχνικές Ερωτήσεις

Γιατί τα αρχεία BMP είναι τόσο μεγάλα;

Τα αρχεία BMP αποθηκεύουν ακατέργαστες, ασυμπίεστες χρωματικές τιμές για κάθε μεμονωμένο pixel, ενώ φορμά όπως το PNG συμπιέζουν αυτά τα δεδομένα χωρίς καμία απώλεια ποιότητας.

Μπορεί το BMP να υποστηρίξει διαφάνεια;

Ναι. Τα αρχεία BMP 32-bit (χρησιμοποιώντας BITMAPV3HEADER ή νεότερο) μπορούν να αποθηκεύσουν ένα κανάλι alpha 8-bit, αν και η υποστήριξη ποικίλλει σε παλαιότερο λογισμικό.

Πώς μπορώ να μειώσω το μέγεθος ενός αρχείου BMP;

Η μετατροπή αρχείου BMP σε PNG μπορεί να μειώσει το μέγεθος του αρχείου διατηρώντας τις τιμές των εικονοστοιχείων, αλλά το αποτέλεσμα εξαρτάται από το περιεχόμενο της εικόνας και την κωδικοποίηση BMP.