Windows Bitmap (.bmp)

Microsoft Τυπικό

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

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

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

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

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

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

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

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

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

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

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

42 4D

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

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

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

Αρχιτεκτονική ΠεριέκτηBITMAPFILEHEADER followed by BITMAPINFOHEADER (DIB) and raster pixel array
ΣυμπίεσηUncompressed raw scanlines, or optional BI_RLE8 / BI_RLE4 run-length encoding
Endianness ByteLittle-Endian (Intel x86 byte order)
Χρωματικοί ΧώροιDevice Dependent RGB, sRGB (BITMAPV5HEADER embedded)
Κανάλια & Δομή1-bit monochrome, 4-bit / 8-bit paletted, 16-bit, 24-bit RGB, or 32-bit RGBA
Μέγιστες Διαστάσεις2,147,483,647 x 2,147,483,647 pixels (signed 32-bit integer)
Διαφάνεια32-bit BGRA alpha mask supported in modern BITMAPV3HEADER and V5HEADER formats
Streaming & Προοδευτική ΦόρτωσηNon-streamable; scanlines stored upside-down (bottom-up) unless height is negative

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

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

Συνηθισμένοι Τρόποι Διαφθοράς & Οδηγός Ανάκτησης Hex

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

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

Ανάκτηση: Επανακωδικοποίηση με χρήση του File2Field Image Converter για την επιβολή της σωστής διαδρομής γραμμής σάρωσης 32-bit.

Ανάλυση Ασφάλειας & Διανύσματα Επίθεσης Parser

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

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

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

Βέλτιστες αμυντικές πρακτικές:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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