Ανακοίνωση

Μορφή αρχείου εικόνας BMP Raster

Τα BMP (αρχείο bitmap, μορφή αρχείου bitmap ανεξάρτητα από τη συσκευή) είναι αρχεία bitmap που χρησιμοποιούνται για την αποθήκευση ψηφιακών εικόνων bitmap χωριστά από τη συσκευή προβολής. Αυτός ο τύπος αρχείου χρησιμοποιήθηκε στο παρελθόν σε Microsoft Windows και OS/2. Ο όρος "raster" προέρχεται από την ιδέα των προγραμματιστών για ένα bitmap. Οι εικόνες BMP συνήθως δεν συμπιέζονται ή συμπιέζονται χωρίς απώλειες (για παράδειγμα, χρησιμοποιώντας ZIP ή RAR - λόγω της παρουσίας περιττών δεδομένων στο αρχείο). Σήμερα, το JPG είναι η προτιμώμενη μορφή εικόνας - κυρίως λόγω του μεγάλου μεγέθους αρχείου του BMP, το οποίο μπορεί να προκαλέσει προβλήματα ή καθυστερήσεις κατά τη λήψη, την αποστολή ή τη μεταφόρτωση αρχείων.

Τεχνικές πληροφορίες για αρχεία BMP

Τα αρχεία BMP αποθηκεύονται ως εικόνες 2D διαφόρων μεγεθών, χρωμάτων και βάθους χρωμάτων χωρίς συμπίεση δεδομένων, προφίλ χρώματος ή κανάλια άλφα. Οι εικόνες BMP αποθηκεύονται σε μορφές bitmap (DIB) ανεξάρτητα από τη συσκευή, που σημαίνει ότι η εικόνα έχει χρώματα και όχι προδιαγραφές συστήματος. Αυτό εξηγεί γιατί ορισμένες εικόνες BMP φαίνονται διαφορετικές σε διαφορετικούς υπολογιστές. Οι εικόνες BMP μπορούν να προβληθούν σε οποιαδήποτε συσκευή, συμπεριλαμβανομένων των οθονών υπολογιστή και τηλεόρασης. Η έλλειψη διπλωμάτων ευρεσιτεχνίας έχει κάνει αυτόν τον τύπο εικόνας μια δημοφιλή μορφή για ένα ευρύ φάσμα συσκευών.

Πρόσθετες πληροφορίες σχετικά με τη μορφή BMP

BMP(από τα Αγγλικά Εικόνα Bitmap) είναι μια μορφή αποθήκευσης εικόνων ράστερ που αναπτύχθηκε από τη Microsoft.

Ένας τεράστιος αριθμός προγραμμάτων λειτουργεί με τη μορφή BMP, καθώς η υποστήριξή του είναι ενσωματωμένη στα λειτουργικά συστήματα Windows και OS/2. Τα αρχεία BMP μπορούν να έχουν επεκτάσεις .bmp, .dib και .rle. Επιπλέον, δεδομένα σε αυτή τη μορφή περιλαμβάνονται σε δυαδικά αρχεία πόρων ΑΠΕ και αρχεία PE.

Η Microsoft έχει επίσης αναπτύξει μορφές ICO και CUR για τις ανάγκες της, οι οποίες έχουν δομή παρόμοια με το BMP. Επιπλέον, δομές από αυτήν τη μορφή χρησιμοποιούνται από ορισμένες συναρτήσεις WinAPI του υποσυστήματος GDI.

Τα βάθη χρώματος σε αυτήν τη μορφή μπορεί να είναι 1, 2, 4, 8, 16, 24, 32, 48 bit ανά pixel, αλλά 2 bit ανά pixel δεν υποστηρίζονται επίσημα. Σε αυτήν την περίπτωση, για βάθη χρωμάτων μικρότερα από 16 bit, χρησιμοποιείται μια παλέτα με πλήρη έγχρωμα στοιχεία με βάθος 24 bit.

Στη μορφή BMP, οι εικόνες μπορούν να αποθηκευτούν ως έχουν ή χρησιμοποιώντας ορισμένους κοινούς αλγόριθμους συμπίεσης. Συγκεκριμένα, η μορφή BMP υποστηρίζει συμπίεση RLE χωρίς απώλεια ποιότητας και τα σύγχρονα λειτουργικά συστήματα και λογισμικό επιτρέπουν τη χρήση JPEG και PNG (αυτές οι μορφές είναι ενσωματωμένες στο BMP ως κοντέινερ).

Επέκταση αρχείου .bmp
Κατηγορία αρχείου
Παράδειγμα αρχείου (2,7 MiB)
(487,85 KiB)
Σχετικά προγράμματα Adobe Photoshop
MS Paint
Microsoft Photo Editor
Πινελο ΖΩΓΡΑΦΙΚΗΣ

DIB και DDB

Όταν χρησιμοποιείτε τη μορφή DIB Bitmap ανεξάρτητο από τη συσκευή, ράστερ ανεξάρτητα από τη συσκευή), ο προγραμματιστής μπορεί να έχει πρόσβαση σε όλα τα στοιχεία των δομών που περιγράφουν την εικόνα χρησιμοποιώντας έναν κανονικό δείκτη. Αλλά αυτά τα δεδομένα δεν χρησιμοποιούνται για τον άμεσο έλεγχο της οθόνης, καθώς αποθηκεύονται πάντα στη μνήμη του συστήματος και όχι στην αποκλειστική μνήμη βίντεο. Η μορφή pixel στη μνήμη RAM μπορεί να διαφέρει από τη μορφή που πρέπει να αποθηκευτεί στη μνήμη βίντεο για να εμφανιστεί ένα σημείο του ίδιου χρώματος. Για παράδειγμα, η μορφή DIB μπορεί να χρησιμοποιήσει 24 bit για να καθορίσει ένα pixel και αυτή τη στιγμή ο προσαρμογέας γραφικών μπορεί να λειτουργεί σε λειτουργία HiColor με βάθος χρώματος 16 bit. Σε αυτήν την περίπτωση, η φωτεινή κόκκινη κουκκίδα θα καθοριστεί σε μορφή ανεξάρτητη από το υλικό κατά τρία byte 0x0000ff και στη μνήμη βίντεο με τη λέξη 0xF800. Κατά την αντιγραφή μιας εικόνας στην οθόνη, το σύστημα θα αφιερώσει επιπλέον χρόνο για να μετατρέψει τους χρωματικούς κωδικούς από τη μορφή 24-bit στη μορφή buffer βίντεο.

Επισκόπηση δομής αρχείου

Το αρχείο BMP αποτελείται από τέσσερα μέρη:

  1. Κεφαλίδα αρχείου (BITMAPFILEHEADER)
  2. Ο τίτλος της εικόνας (BITMAPINFOHEADER, ενδέχεται να λείπει). BITMAPV4HEADER (Win95, NT4.0) BITMAPV5HEADER (Win98/Me, 2000/XP)
  3. Παλέτα (μπορεί να λείπει)
  4. Η ίδια η εικόνα

BITMAFILEHEADER

Αυτή η δομή περιέχει πληροφορίες σχετικά με τον τύπο, το μέγεθος και την αναπαράσταση των δεδομένων στο αρχείο. Μέγεθος 14 byte.

Typedef struct tagBITMAPFILEHEADER ( WORD bfType; // μετατόπισε 0 byte από την αρχή του αρχείου DWORD bfSize; // μετατόπιση 2 byte από την αρχή του αρχείου, μήκος 4 byte WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; // μετατόπιση 10 byte από την αρχή του αρχείου, μήκος 4 byte) BITMAPFILEHEADER, * PBITMAPFILEHEADER;

Ο τύπος WORD πρέπει να είναι 16 bit, οι τύποι DWORD και LONG πρέπει να είναι 32 bit, ο τύπος LONG πρέπει να είναι υπογεγραμμένος και η σειρά byte θεωρείται ότι είναι μικρή endian.

  • bfType - τύπος αρχείου, χαρακτήρες "BM" (σε HEX: 0x42 0x4d).
  • bfSize - μέγεθος ολόκληρου του αρχείου σε byte.
  • Τα bfReserved1 και bfReserved2 είναι δεσμευμένα και πρέπει να περιέχουν μηδενικά.
  • bfOffBits - περιέχει τη μετατόπιση σε byte από την αρχή της δομής BITMAPFILEHEADER έως τα ίδια τα bit της εικόνας.

Μετά την κεφαλίδα του αρχείου

BITMAPINFOHEADER

Η απλούστερη επιλογή κεφαλίδας. Οι εφαρμογές για Windows NT3.51 και παλαιότερες εκδόσεις μπορούν να χρησιμοποιούν μόνο αυτήν τη δομή. Μέγεθος 40 byte.

Ετικέτα πληκτρολόγησης BITMAPINFOHEADER( DWORD biSize; LONG biWidth; LONG biΎψος; WORD biPlanes; WORD biBitCount; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYWRDlMeter; Β) ITMAPINFOHEADER, * PBITMAPINFOHEADER;

BiSize Το μέγεθος αυτής της δομής σε byte. Η μορφή BMP έχει επεκταθεί με την πάροδο του χρόνου και η τιμή αυτού του πεδίου καθορίζει την έκδοση της μορφής. biWidth Το πλάτος της εικόνας σε pixel. Για Win98/Me και Win2000/XP: Εάν το πεδίο biCompression περιέχει BI_JPEG ή BI_PNG, αυτό είναι το πλάτος της αποσυμπιεσμένης εικόνας. biHeight Το ύψος της εικόνας σε pixel. Εάν περιέχει θετική τιμή, η εικόνα γράφεται με σειρά από κάτω προς τα πάνω (μηδέν pixel στην κάτω αριστερή γωνία). Εάν η τιμή είναι αρνητική, η εικόνα γράφεται από πάνω προς τα κάτω (μηδέν pixel στην επάνω αριστερή γωνία της εικόνας). Το πεδίο biCompression πρέπει να περιέχει την τιμή BI_RGB ή BI_BITFIELDS. Μια τέτοια εικόνα δεν μπορεί να συμπιεστεί. biPlanes Ο αριθμός των επιπέδων χρώματος και σε μορφή BMP περιέχει ένα. biBitCount Αριθμός bit ανά pixel. Μπορεί να λάβει τις ακόλουθες τιμές:

  • 0 - έχει νόημα για Win98/Me/2000/XP. Ο αριθμός των bit ανά pixel καθορίζει τη μορφή JPEG ή PNG.
  • 1 - μονόχρωμη εικόνα. Το μέλος bmiColors της δομής BITMAPINFO περιέχει δύο στοιχεία. Κάθε bit μιας εικόνας αντιπροσωπεύει ένα pixel. εάν το bit είναι μηδέν, το pixel έχει το χρώμα του πρώτου στοιχείου του πίνακα bmiColors, διαφορετικά - το χρώμα του δεύτερου.
  • 4 - εικόνα δεκαέξι χρωμάτων. Τα εικονοστοιχεία ορίζονται από δείκτες 4 bit, κάθε byte της εικόνας περιέχει πληροφορίες για δύο pixel - τα πιο σημαντικά 4 bit για το πρώτο, τα υπόλοιπα 4 bit για το δεύτερο.
  • 8 - η παλέτα περιέχει έως και 256 χρώματα, κάθε byte της εικόνας αποθηκεύει ένα ευρετήριο στην παλέτα για ένα pixel.
  • 16 - εάν το πεδίο biCompression περιέχει την τιμή BI_RGB, το αρχείο δεν περιέχει παλέτα. Κάθε δύο byte της εικόνας αποθηκεύουν την ένταση των κόκκινων, πράσινων και μπλε στοιχείων ενός pixel. Σε αυτήν την περίπτωση, το πιο σημαντικό bit δεν χρησιμοποιείται. Εκχωρούνται 5 bit για κάθε στοιχείο: 0RRRRRGGGGGBBBB.
    Εάν το πεδίο biCompression περιέχει την τιμή BI_BITFIELDS, η παλέτα αποθηκεύει τρεις τιμές τεσσάρων byte που ορίζουν μια μάσκα για καθένα από τα τρία στοιχεία χρώματος. Κάθε εικονοστοιχείο σε μια εικόνα αντιπροσωπεύεται από μια τιμή δύο byte από την οποία εξάγονται τα στοιχεία χρώματος χρησιμοποιώντας μάσκες. Για WinNT/2000/XP, οι ακολουθίες bit κάθε στοιχείου πρέπει να ακολουθούν συνεχώς, χωρίς να επικαλύπτονται ή να τέμνονται με τις ακολουθίες άλλων στοιχείων. Για Win95/98/Me - υποστηρίζονται μόνο οι ακόλουθες μάσκες: 5-5-5, όπου η μάσκα του μπλε στοιχείου είναι 0x001F, πράσινο 0x03E0, κόκκινο 0x7C00. και 5-6-5, όπου η μάσκα του μπλε στοιχείου είναι 0x001F, πράσινο 0x07E0, κόκκινο 0xF800.
  • 24 - η παλέτα δεν χρησιμοποιείται, κάθε τρία byte της εικόνας αντιπροσωπεύει ένα pixel, ένα byte για την ένταση του μπλε, πράσινου και κόκκινου καναλιού, αντίστοιχα.
  • 32 - Εάν το πεδίο biCompression περιέχει την τιμή BI_RGB, η εικόνα δεν περιέχει παλέτα. Κάθε τέσσερα byte της εικόνας αντιπροσωπεύουν ένα pixel, ένα byte το καθένα για την ένταση του μπλε, πράσινου και κόκκινου καναλιού, αντίστοιχα. Το πιο σημαντικό byte από κάθε quad δεν χρησιμοποιείται συνήθως, αλλά επιτρέπει την αποθήκευση δεδομένων καναλιού άλφα.
    Εάν το πεδίο biCompression περιέχει την τιμή BI_BITFIELDS, τρεις χρωματικές μάσκες τεσσάρων byte αποθηκεύονται στην παλέτα - για τα κόκκινα, πράσινα και μπλε στοιχεία. Κάθε pixel σε μια εικόνα αντιπροσωπεύεται από τέσσερα byte. WinNT/2000: Οι μάσκες εξαρτημάτων δεν πρέπει να επικαλύπτονται ή να τέμνονται. Windows 95/98/Me: το σύστημα υποστηρίζει μόνο μία λειτουργία συμπίεσης, εντελώς παρόμοια με τη λειτουργία χωρίς συμπίεση BI_RGB - το πιο σημαντικό byte από κάθε τέσσερα χρησιμοποιείται ως κανάλι άλφα, τα επόμενα τρία προορίζονται για το μπλε, το πράσινο και το κόκκινο κανάλια, αντίστοιχα: 0xAARRGGBB.
biCompression Τύπος συμπίεσης για συμπιεσμένες εικόνες:
Εννοια Αναγνωριστικό Συμπίεση
0 BI_RGB ασυμπίεστη εικόνα
1 BI_RLE8 Συμπίεση RLE για εικόνες 8-bit
2 BI_RLE4 Συμπίεση RLE για εικόνες 4-bit
3 BI_BITFIELDS η εικόνα δεν συμπιέζεται, η παλέτα περιέχει τρεις μάσκες 4 byte για τα στοιχεία του κόκκινου, του πράσινου και του μπλε χρώματος. Χρησιμοποιείται για εικόνες 16 και 32 bit
4 BI_JPEG Win98/Me/2000/XP: Συμπίεση JPEG
5 BI_PNG Win98/Me/2000/XP: Συμπίεση PNG
6 BI_ALPHABITFIELDS WinCE: η εικόνα δεν συμπιέζεται, η παλέτα περιέχει τέσσερις μάσκες 4 byte για τα στοιχεία χρώματος κόκκινου, πράσινου, μπλε και διαφανούς (κανάλι άλφα). Χρησιμοποιείται για εικόνες 16 και 32 bit
biSizeImage Μέγεθος εικόνας σε byte. Μπορεί να περιέχει μηδέν για εικόνες BI_RGB. Win98/Me/2000/XP: Εάν η biCompression περιέχει BI_JPEG ή BI_PNG, το biSizeImage καθορίζει το μέγεθος του buffer εικόνας BI_JPEG ή BI_PNG. biXPelsPerMeter Οριζόντια ανάλυση σε pixel ανά μέτρο για τη συσκευή-στόχο. Μια εφαρμογή μπορεί να χρησιμοποιήσει αυτήν την τιμή για να επιλέξει από μια ομάδα πόρων εικόνας την πιο κατάλληλη εικόνα για την τρέχουσα συσκευή. Για το DPI 96, το οποίο είναι αποδεκτό από τη Microsoft για οθόνες, θα είναι ίσο με 3780 (εάν υπολογίζεται χρησιμοποιώντας τον τύπο (96 / 25.4) * 1000). biYPelsPerMeter Κατακόρυφη ανάλυση σε pixel ανά μέτρο για τη συσκευή-στόχο. biClrUsed Ο αριθμός των χρωματικών δεικτών που χρησιμοποιούνται στην παλέτα. Εάν η τιμή είναι μηδέν, η εικόνα χρησιμοποιεί τον μέγιστο αριθμό διαθέσιμων ευρετηρίων, σύμφωνα με την τιμή biBitCount και τη μέθοδο συμπίεσης που καθορίζεται στο biCompression.
Εάν περιέχει μια μη μηδενική τιμή και το biBitCount είναι μικρότερο από 16, το biClrUsed καθορίζει τον αριθμό των χρωμάτων στα οποία θα έχει πρόσβαση το πρόγραμμα οδήγησης της συσκευής ή η εφαρμογή. Εάν το biBitCount είναι μεγαλύτερο ή ίσο με 16, το biClrUsed είναι το μέγεθος της παλέτας που χρησιμοποιείται για τη βελτιστοποίηση της απόδοσης των παλετών συστήματος. Εάν το biBitCount είναι 16 ή 32, η βέλτιστη παλέτα ακολουθεί αμέσως μετά από τρεις μάσκες τεσσάρων byte.
Σε μια συσκευασμένη εικόνα, ο πίνακας εικονοστοιχείων ακολουθεί αμέσως τη δομή BITMAPINFO, το biClrUsed πρέπει να περιέχει το μηδέν ή το πραγματικό μέγεθος παλέτας. biClrΣημαντικό Ο αριθμός των στοιχείων της παλέτας που απαιτούνται για την εμφάνιση της εικόνας. Εάν περιέχει μηδέν, όλοι οι δείκτες είναι εξίσου σημαντικοί.

Η δομή BITMAPINFO συνδυάζει το BITMAPINFOHEADER και την παλέτα, παρέχοντας μια πλήρη περιγραφή των διαστάσεων και των χρωμάτων μιας εικόνας.

Για να βρείτε την παλέτα στη δομή BITMAPINFO, η εφαρμογή πρέπει να χρησιμοποιήσει τις πληροφορίες που είναι αποθηκευμένες στο biSize ως εξής:

PCcolor = ((LPSTR) pBitmapInfo + (WORD) (pBitmapInfo-> bmiHeader.biSize ) ;

Το ράστερ συνήθως αποθηκεύεται σε κατακόρυφα κατοπτρισμένη μορφή. Αλλά είναι επίσης δυνατή η αποθήκευση του ράστερ σε μια μη κατακόρυφα κατοπτρισμένη μορφή. Ένα σημάδι ότι το ράστερ στο BMP δεν είναι σε μορφή κάθετου καθρέφτη καθορίζεται από την παράμετρο biHeight.

BITMAPV4HEADER

Μια διευρυμένη έκδοση της δομής που περιγράφεται παραπάνω. Το Win NT 3.51 και παλαιότερο πρέπει να χρησιμοποιεί τη δομή BITMAPINFOHEADER. Το Win98/Me/2000/XP μπορεί να χρησιμοποιήσει τη δομή BITMAPV5HEADER αντί για τη δομή BITMAPV4HEADER.

Structure Typedef ( DWORD bV4Size; LONG bV4Width; LONG bV4Height; WORD bV4Planes; WORD bV4BitCount; DWORD bV4V4Compression; DWORD bV4SizeImage; LONG bV4XPelsPerWlMeter; sed DW bV4ClrΣημαντικό CIEXYZTRIPLE bV4GammaBlue;

Τα πεδία από την αρχή της δομής έως και το bV4ClrImportant έχουν τον ίδιο σκοπό με τα αντίστοιχα πεδία της δομής BITMAPINFOHEADER.

  • bV4RedMask - έγχρωμη μάσκα του κόκκινου στοιχείου κάθε pixel, που χρησιμοποιείται μόνο εάν το bV4Compression περιέχει την τιμή BI_BITFIELDS.
  • bV4GreenMask - έγχρωμη μάσκα του πράσινου στοιχείου κάθε pixel, που χρησιμοποιείται μόνο εάν το bV4Compression περιέχει την τιμή BI_BITFIELDS.
  • bV4BlueMask - έγχρωμη μάσκα του μπλε στοιχείου κάθε pixel, που χρησιμοποιείται μόνο εάν το bV4Compression περιέχει την τιμή BI_BITFIELDS.
  • bV4AlphaMask - μάσκα που ορίζει το στοιχείο άλφα καναλιού.
  • bV4CSType - ορίζει τον χρωματικό χώρο της εικόνας.
  • Το bV4Endpoints είναι μια δομή CIEXYZTRIPLE που καθορίζει τις συντεταγμένες x, y και z τριών χρωμάτων που αντιστοιχούν στα τελικά σημεία του χρωματικού χώρου που ορίζεται για την εικόνα. Αυτό το πεδίο αγνοείται εάν το bV4CSType δεν περιέχει τιμή LCS_CALIBRATED_RGB.
  • bV4GammaRed - καμπύλη τόνου του κόκκινου στοιχείου. Αγνοείται εάν το bV4CSType δεν περιέχει τιμή LCS_CALIBRATED_RGB. Υποδεικνύεται σε μορφή 16×16.
  • bV4GammaGreen - καμπύλη τόνου του πράσινου στοιχείου. Αγνοείται εάν το bV4CSType δεν περιέχει τιμή LCS_CALIBRATED_RGB.
  • bV4GammaBlue - καμπύλη τόνου μπλε συστατικού. Αγνοείται εάν το bV4CSType δεν περιέχει τιμή LCS_CALIBRATED_RGB.

BITMAPV5HEADER

Win95/NT 4.0: Οι εφαρμογές μπορούν να χρησιμοποιήσουν το BITMAPV4HEADER. Το Win NT 3.51 και παλαιότερο πρέπει να χρησιμοποιεί τη δομή BITMAPINFOHEADER.

Structure Typedef ( DWORD bV5Size; LONG bV5Width; LONG bV5Hight; WORD bV5Planes; WORD bV5BitCount; DWORD bV5Compression; DWORD bV5SizeImage; LONG bV5XPelsPerMeter5PerMeter;DWORD bV5Bit; bV5ClrΣημαντικό DWORD bV5AlphaMask ; 5HEADER;

Για πεδία από την αρχή της δομής έως και το bV5GammaBlue, θα περιγραφούν μόνο διαφορές από τις προηγούμενες εκδόσεις - BITMAPINFOHEADER και BITMAPV4HEADER.

  • bV5CSType - ορίζει τον χρωματικό χώρο της εικόνας, μπορεί να λάβει τις ακόλουθες τιμές:
LCS_CALIBRATED_RGB LCS_sRGB LCS_WINDOWS_COLOR_SPACE PROFILE_LINKED PROFILE_EMBEDDED
  • bV5Intent - μπορεί να λάβει τις ακόλουθες τιμές:
LCS_GM_ABS_COLORIMETRIC LCS_GM_BUSINESS LCS_GM_GRAPHICS LCS_GM_IMAGES
  • bV5ProfileData - μετατόπιση σε byte από την αρχή της δομής έως την αρχή των δεδομένων προφίλ (όνομα αρχείου προφίλ, συμβολοσειρά που αποτελείται αποκλειστικά από πίνακα κωδικών 1252 χαρακτήρων και τελειώνει με μηδενικό byte). Αγνοείται εάν το bV5CSType περιέχει μια τιμή διαφορετική από PROFILE_LINKED και PROFILE_EMBEDDED.
  • bV5ProfileSize - μέγεθος δεδομένων προφίλ σε byte.
  • bV5Δέσμευση - κράτηση. Περιέχει μηδέν.

Παλέτα

Η παλέτα μπορεί να περιέχει μια ακολουθία πεδίων τεσσάρων byte ανάλογα με τον αριθμό των διαθέσιμων χρωμάτων (256 για μια εικόνα 8 bit). Τα χαμηλά τρία byte κάθε πεδίου καθορίζουν την ένταση των κόκκινων, πράσινων και μπλε στοιχείων του χρώματος δεν χρησιμοποιείται. Κάθε pixel της εικόνας περιγράφεται σε αυτήν την περίπτωση από ένα byte που περιέχει τον αριθμό του πεδίου παλέτας στο οποίο είναι αποθηκευμένο το χρώμα αυτού του pixel.

Εάν ένα εικονοστοιχείο εικόνας περιγράφεται με έναν αριθμό 16 bit, η παλέτα μπορεί να αποθηκεύσει τρεις τιμές δύο byte, καθεμία από τις οποίες ορίζει μια μάσκα για την εξαγωγή των στοιχείων κόκκινου, πράσινου και μπλε χρώματος από το εικονοστοιχείο των 16 bit.

Ένα αρχείο BMP μπορεί να μην περιέχει παλέτα εάν αποθηκεύει μια ασυμπίεστη έγχρωμη εικόνα.

Δεδομένα εικόνας

Μια ακολουθία pixel που καταγράφεται με τη μια ή την άλλη μορφή. Τα εικονοστοιχεία αποθηκεύονται σειρά προς σειρά, από κάτω προς τα πάνω. Κάθε γραμμή εικόνας είναι γεμάτη με μηδενικά σε μήκος που είναι πολλαπλάσιο των τεσσάρων byte.

Σε αρχεία bmp με βάθος χρώματος 24 bit, τα χρωματικά byte κάθε pixel αποθηκεύονται με σειρά BGR (Μπλε, Πράσινο, Κόκκινο).

Σε αρχεία bmp με βάθος χρώματος 32 bit, τα χρωματικά byte κάθε pixel αποθηκεύονται με σειρά BGRA (Μπλε, Πράσινο, Κόκκινο, Άλφα)

Βάθος bit εικόνας

Ανάλογα με τον αριθμό των αντιπροσωπευόμενων χρωμάτων, κάθε σημείο εκχωρείται από 1 έως 48 bit:

  • 1 bit - μονόχρωμη εικόνα (δύο χρώματα).
  • 2 bit - 4 πιθανά χρώματα (τρόποι λειτουργίας CGA) (η λειτουργία 2 bit δεν είναι επίσημα τυποποιημένη, αλλά χρησιμοποιείται).
  • 4 bit - εικόνα 16 χρωμάτων (τρόποι λειτουργίας EGA).
  • 8 bit (1 byte) - 256 χρώματα, η τελευταία από τις λειτουργίες για υποστήριξη χρωμάτων με ευρετήριο (δείτε παρακάτω).
  • 16 bit (2 byte) - Λειτουργία HiColor, Για 5-6-5 = 65536 πιθανές αποχρώσεις, για 5-5-5 = 32768 πιθανές αποχρώσεις.
  • 24 bit (3 byte) - TrueColor. Επειδή τα 3 byte δεν αντιστοιχίζονται καλά στις δυνάμεις των δύο (ειδικά κατά την αποθήκευση δεδομένων στη μνήμη, όπου η στοίχιση δεδομένων σε ένα όριο λέξης έχει σημασία), χρησιμοποιείται συχνά μια εικόνα 32 bit. Στη λειτουργία TrueColor, σε καθένα από τα τρία κανάλια (σε λειτουργία RGB) εκχωρείται 1 byte (256 πιθανές τιμές), ο συνολικός αριθμός χρωμάτων είναι .
  • 32 bit (4 byte) - αυτή η λειτουργία είναι σχεδόν παρόμοια με το TrueColor, το τέταρτο byte συνήθως δεν χρησιμοποιείται ή το κανάλι άλφα (διαφάνεια) βρίσκεται σε αυτό.
  • 48 bit (6 byte) - μια μορφή που χρησιμοποιείται σπάνια με αυξημένη ακρίβεια χρώματος (16 bit ανά κανάλι), που υποστηρίζεται από σχετικά μικρό αριθμό προγραμμάτων και εξοπλισμού.

Χρώματα με ευρετήριο

Όταν ο αριθμός των bit είναι 1 (2 χρώματα), 2 (4 χρώματα), 4 (16 χρώματα) ή 8 (256 χρώματα) ανά pixel, μπορεί να χρησιμοποιηθεί μια ειδική λειτουργία ευρετηρίου χρώματος. Σε αυτήν την περίπτωση, ο αριθμός που αντιστοιχεί σε κάθε pixel δεν υποδεικνύει το χρώμα, αλλά τον αριθμό του χρώματος στην παλέτα. Χρησιμοποιώντας μια παλέτα, είναι δυνατή η προσαρμογή της εικόνας στα χρώματα που υπάρχουν στην εικόνα. Σε αυτήν την περίπτωση, η εικόνα δεν περιορίζεται από καθορισμένα χρώματα, αλλά από τον μέγιστο αριθμό χρωμάτων που χρησιμοποιούνται ταυτόχρονα.

Παράδειγμα προγράμματος

Το παρακάτω πρόγραμμα ανοίγει ένα αρχείο BMP 24-bit σε ένα XWindow, το βάθος χρώματος πρέπει να είναι 32 bit, δεν λειτουργεί σε χαμηλότερες χρωματικές αποδόσεις, καθώς περιπλέκει το παράδειγμα:

/* Μεταγλώττιση με τη γραμμή: cc -o xtest xtest.c -I/usr/X11R6/include -L/usr/X11R6/lib -lX11 -lm */#περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #περιλαμβάνω #include "bitmap.h" /* Ακολουθούν οι ορισμοί της κεφαλίδας BMP όπως περιγράφονται νωρίτερα σε αυτό το άρθρο */ static XImage * CreateImageFromBuffer(Display*, unsigned char *, int, int) ; main(int argc, char * argv ) ( Εμφάνιση * dis; Window win; /* Our window */ XEvent event; /* Events */ GC gc; /* Περιβάλλον γραφικών */ XImage * εικόνα; int n, πλάτος, ύψος, fd, μέγεθος; ανυπόγραφα δεδομένα char *; BITMAPFILEHEADER bmp; BITMAPINFOHEADER inf; char * buf; εάν (argc< 2 ) { perror ("use: xtest file.bmp\n") ; exit(1); ) if ((fd = open(argv[ 1 ] , O_RDONLY) ) == - 1 ) ( printf ("Σφάλμα ανοιχτού bitmap \n") ; exit(1); ) read(fd, & bmp, sizeof (BITMAPFILEHEADER) ); read(fd, & inf, sizeof (BITMAPINFOHEADER) ); πλάτος = inf.biWidth ; ύψος = inf.biΎψος ; if ((dis = XOpenDisplay(getenv ("DISPLAY" ) ) ) == NULL) ( printf ( "Δεν είναι δυνατή η σύνδεση διακομιστή X: %s\n", strerror (errno) ); exit(1); ) win = XCreateSimpleWindow(dis, RootWindow(dis, DefaultScreen(dis) ) , 0 , 0 , πλάτος, ύψος, 5 , BlackPixel(dis, DefaultScreen(dis) ) , WhitePixel(dis, DefaultScreen(dis) ) ; XSetStandardProperties(dis, win, argv[ 1 ], argv[ 0 ], None, argv, argc, NULL); gc = DefaultGC(dis, DefaultScreen(dis) ); /* Μερικές φορές αυτός ο χώρος στη δομή δεν συμπληρώνεται */αν (inf.biSizeImage == 0 ) ( /* Υπολογίστε το μέγεθος */μέγεθος = πλάτος * 3 + πλάτος % 4 ; μέγεθος = μέγεθος * ύψος; ) else ( size = inf.biSizeImage ; ) buf = malloc (μέγεθος) ; if (buf == NULL) ( perrror ("malloc" ) ; exit (1 ) ; ) printf ( "μέγεθος = κατανεμήθηκαν %d byte\n", Μέγεθος) ; /* Ας περάσουμε στην αρχή της ίδιας της εικόνας */ lseek(fd, bmp.bfOffBits , SEEK_SET) ; /* Ανάγνωση στο buffer */ n = ανάγνωση (fd, buf, μέγεθος) ; printf( "μέγεθος = %d byte αναγνωσμένα\n", ιδ) ; image = CreateImageFromBuffer(dis, buf, πλάτος, ύψος) ; /* Διαγράψτε το buffer - δεν το χρειαζόμαστε πλέον */δωρεάν (buf); XMapWindow(dis, win) ; XSelectInput(dis, win, ExposureMask | KeyPressMask) ; ενώ (1 ) ( XNextEvent(dis, & event) ; if (event.xany .window == win) ( switch (event.type ) ( case Expose: XPutImage(dis, win, gc, image, 0 , 0 , 0 , 0 , εικόνα-> πλάτος, εικόνα-> ύψος) ; διάλειμμα ; έξοδος (EXIT_SUCCESS) ; /* Δημιουργεί ένα Ximage από ένα αρχείο BMP, καθώς η εικόνα BMP αποθηκεύεται ανεστραμμένη * και αντικατοπτρίζεται - αυτό διορθώνεται στον βρόχο */ XImage * CreateImageFromBuffer(Εμφάνιση * dis, ανυπόγραφο char * buf, int πλάτος, int ύψος) (int βάθος, οθόνη; XImage * img = NULL; int i, j; int numBmpBytes; size_t numImgBytes; int32_t; int32_t; int γραμμή int ih; /* Αριθμοί σειρών και στηλών που αντικατοπτρίζουν */ int new_ind; /* Νέο ευρετήριο */ οθόνη = DefaultScreen(dis) ; βάθος = DefaultDepth(dis, οθόνη) ; θερμοκρασία = πλάτος * 3 ; γραμμή = θερμοκρασία + πλάτος % 4 ; /* Μήκος συμβολοσειράς λαμβάνοντας υπόψη την ευθυγράμμιση */ numImgBytes = (4 * (πλάτος * ύψος) ) ; imgBuf = malloc(numImgBytes); /* Το μέγεθος που εκχωρείται στο BMP στο αρχείο, λαμβάνοντας υπόψη την ευθυγράμμιση */ numBmpBytes = γραμμή * ύψος; για (i = 0; i< numBmpBytes; i++ ) { unsigned int r, g, b; /* Παράλειψη συμπλήρωσης */αν (i >= temp && (i % line) >= temp) συνεχίσει ; b = buf[ i] ; i++; g = buf[ i] ; i++; r = buf[ i] ; /* Υπολογισμός νέου δείκτη για κάθετη αντανάκλαση */ iw = ind % πλάτος; ih = ind / πλάτος; new_ind = iw + (ύψος - ih - 1 ) * πλάτος; imgBuf[ new_ind] = (r | g<< 8 | b << 16 ) << 8 ; ind++; } img = XCreateImage(dis, CopyFromParent, depth, ZPixmap, 0 , (char * ) imgBuf, width, height, 32 , 0 ) ; XInitImage(img) ; /* Η σειρά bit και byte στον υπολογιστή πρέπει να είναι έτσι */ img->byte_order = MSBFirst; img->bitmap_bit_order = MSBFirst; επιστροφή img? )

Θεωρήθηκε ένα μικρό πρόγραμμα που μετακινούσε το sprite στην οθόνη, αλλά, δυστυχώς, δεν φαινόταν όπως θα θέλαμε. Σε αυτό το άρθρο θα προσπαθήσουμε να «τακτοποιήσουμε» το sprite.

Λάβαμε την εικόνα sprite από ένα αρχείο Bmp από τα ίδια αρχεία που μπορούμε να πάρουμε την εικόνα του φόντου, του δρομέα του ποντικιού και των στοιχείων διεπαφής. Ωστόσο, αυτό που βλέπουμε στην οθόνη δεν είναι ακριβώς αυτό που περιμέναμε: η εικόνα αποδείχθηκε ανάποδη και, επιπλέον, με διαφορετικά χρώματα από τα απαιτούμενα. Λοιπόν, ας μάθουμε πώς να διαβάζουμε σωστά τα αρχεία Bmp και να περιστρέφουμε την εικόνα "από την κορυφή μέχρι τα νύχια".

Με απόφαση των προγραμματιστών, η μορφή αρχείου Bmp δεν συνδέεται με μια συγκεκριμένη πλατφόρμα υλικού. Αυτό το αρχείο αποτελείται από τέσσερα μέρη: μια κεφαλίδα, μια κεφαλίδα πληροφοριών, έναν πίνακα χρωμάτων (παλέτα) και δεδομένα εικόνας. Εάν το αρχείο αποθηκεύει μια εικόνα με βάθος χρώματος 24 bit (16 εκατομμύρια χρώματα), τότε ο πίνακας χρωμάτων μπορεί να λείπει, αλλά στη θήκη 256 χρωμάτων μας είναι εκεί. Η δομή κάθε τμήματος ενός αρχείου που αποθηκεύει μια εικόνα 256 χρωμάτων δίνεται στο , και οι αντίστοιχοι τύποι εγγραφών δίνονται στο .

Η κεφαλίδα του αρχείου ξεκινά με υπογραφές"BM" ακολουθούμενο από το μήκος του αρχείου, εκφρασμένο σε byte. Τα επόμενα 4 byte δεσμεύονται για περαιτέρω επεκτάσεις μορφής και αυτή η κεφαλίδα τελειώνει μετατόπισηαπό την αρχή του αρχείου έως τα δεδομένα εικόνας που έχουν καταγραφεί σε αυτό. Με 256 χρώματα, αυτή η μετατόπιση είναι 1078 - αυτό ακριβώς έπρεπε να παραλείψουμε στο προηγούμενο πρόγραμμά μας για να φτάσουμε στα δεδομένα.

Η κεφαλίδα πληροφοριών ξεκινά με το δικό της μήκος (αυτό μπορεί να διαφέρει, αλλά για ένα αρχείο 256 χρωμάτων είναι 40 byte) και περιέχει τις διαστάσεις της εικόνας, την ανάλυση, τα χαρακτηριστικά παρουσίασης χρώματος και άλλες παραμέτρους.

Πλάτος και ύψος εικόναςκαθορίζονται σε σημεία ράστερ και πιθανώς δεν χρειάζονται επεξήγηση.

Αριθμός αεροπλάνωνμπορεί να χρησιμοποιηθεί σε αρχεία με χαμηλό βάθος χρώματος. Όταν ο αριθμός των χρωμάτων είναι 256 ή περισσότερα, είναι πάντα ίσος με 1, επομένως αυτό το πεδίο μπορεί πλέον να θεωρηθεί απαρχαιωμένο, αλλά για συμβατότητα διατηρείται.

Βάθος χρώματοςθεωρείται το πιο σημαντικό χαρακτηριστικό του τρόπου με τον οποίο αναπαρίσταται το χρώμα σε ένα αρχείο και μετράται σε bit ανά κουκκίδα. Σε αυτή την περίπτωση είναι ίσο με 8.

Συμπίεση.Δεν χρησιμοποιείται συνήθως σε αρχεία Bmp, αλλά παρέχεται ένα πεδίο στην κεφαλίδα για αυτό. Συνήθως είναι 0, που σημαίνει ότι η εικόνα δεν συμπιέζεται. Στο μέλλον θα χρησιμοποιούμε μόνο τέτοια αρχεία.

Μέγεθος εικόνας- ο αριθμός των byte μνήμης που απαιτούνται για την αποθήκευση αυτής της εικόνας, χωρίς να υπολογίζονται τα δεδομένα της παλέτας.

Οριζόντιες και κάθετες αναλύσειςμετρημένο σε ράστερ σημεία ανά μέτρο. Είναι ιδιαίτερα σημαντικά για τη διατήρηση της κλίμακας των σαρωμένων εικόνων. Οι εικόνες που δημιουργούνται χρησιμοποιώντας προγράμματα επεξεργασίας γραφικών συνήθως έχουν μηδενικά σε αυτά τα πεδία.

Αριθμός χρωμάτωνσας επιτρέπει να μειώσετε το μέγεθος του πίνακα της παλέτας εάν η εικόνα περιέχει πραγματικά λιγότερα χρώματα από όσα επιτρέπει το επιλεγμένο βάθος χρώματος. Ωστόσο, στην πράξη τέτοια αρχεία δεν βρίσκονται σχεδόν ποτέ. Εάν ο αριθμός των χρωμάτων είναι ο μέγιστος επιτρεπόμενος από το βάθος χρώματος, για παράδειγμα 256 χρώματα στα 8 bit, το πεδίο ορίζεται στο μηδέν.

Αριθμός βασικών χρωμάτων- προέρχεται από την αρχή της παλέτας και καλό είναι να εμφανίζεται χωρίς παραμόρφωση. Αυτό το πεδίο είναι σημαντικό όταν ο μέγιστος αριθμός χρωμάτων εμφάνισης ήταν μικρότερος από ό,τι στην παλέτα αρχείων Bmp. Κατά την ανάπτυξη της μορφής, προφανώς υποτέθηκε ότι τα χρώματα που εμφανίζονται πιο συχνά θα βρίσκονται στην αρχή του πίνακα. Τώρα αυτή η απαίτηση πρακτικά δεν τηρείται, δηλαδή τα χρώματα δεν ταξινομούνται με βάση τη συχνότητα με την οποία εμφανίζονται στο αρχείο. Αυτό είναι πολύ σημαντικό, καθώς οι παλέτες δύο διαφορετικών αρχείων, ακόμη και αποτελούμενων από τα ίδια χρώματα, θα τα περιέχουν (τα χρώματα) με διαφορετική σειρά, γεγονός που θα μπορούσε να περιπλέξει σημαντικά την ταυτόχρονη εμφάνιση τέτοιων εικόνων στην οθόνη.

Η κεφαλίδα πληροφοριών ακολουθείται από έναν πίνακα χρωμάτων, ο οποίος είναι ένας πίνακας 256 (σε αριθμό χρωμάτων) πεδία 4 byte. Κάθε πεδίο αντιστοιχεί σε ένα χρώμα στην παλέτα και τρία από τα τέσσερα byte αντιστοιχούν στα μπλε, πράσινα και κόκκινα στοιχεία αυτού του χρώματος. Το τελευταίο, πιο σημαντικό byte κάθε πεδίου είναι δεσμευμένο και ίσο με 0.

Μετά τον πίνακα χρωμάτων υπάρχουν δεδομένα εικόνας, τα οποία γράφονται κατά μήκος των γραμμών ράστερ από κάτω προς τα πάνω και μέσα στη γραμμή - από αριστερά προς τα δεξιά. Δεδομένου ότι σε ορισμένες πλατφόρμες είναι αδύνατο να διαβάσετε μια μονάδα δεδομένων που είναι μικρότερη από 4 byte, το μήκος κάθε γραμμής ευθυγραμμίζεται σε ένα όριο 4 byte, δηλαδή, εάν το μήκος της γραμμής δεν είναι πολλαπλάσιο των τεσσάρων, συμπληρώνεται με μηδενικά. Αυτή η περίσταση πρέπει να λαμβάνεται υπόψη κατά την ανάγνωση του αρχείου, αν και ίσως είναι καλύτερο να βεβαιωθείτε εκ των προτέρων ότι οι οριζόντιες διαστάσεις όλων των εικόνων είναι πολλαπλάσιο του 4.

Όπως έχουμε ήδη πει, η μορφή αρχείου σχεδιάστηκε για να είναι καθολική για διάφορες πλατφόρμες, επομένως δεν προκαλεί έκπληξη το γεγονός ότι τα χρώματα της παλέτας αποθηκεύονται σε αυτήν διαφορετικά από ό,τι συνηθίζεται για το VGA. Κατά τη διαδικασία ανάγνωσης πραγματοποιείται η απαραίτητη επανακωδικοποίηση. (Θα μιλήσουμε για το τι είναι η παλέτα VGA και πώς να εργαστείτε μαζί της στα ακόλουθα άρθρα.)

Η ενότητα για την ανάγνωση αρχείων Bmp 256 χρωμάτων έχει μόνο δύο διαδικασίες. Όπως φαίνεται από την καταχώριση, οι διαστάσεις της εικόνας πρέπει να περάσουν στη διαδικασία ανάγνωσης του αρχείου ReadBMP. Αυτό είναι βολικό εάν η εικόνα δεν χρειάζεται να διαβαστεί πλήρως. Όταν τα μεγέθη είναι γνωστά εκ των προτέρων, αυτό δεν προκαλεί προβλήματα, αλλά θα ήταν καλό εάν, χρησιμοποιώντας τη μονάδα μας, ήταν δυνατή η ανάγνωση οποιωνδήποτε εικόνων, συμπεριλαμβανομένων εκείνων των οποίων το μέγεθος είναι άγνωστο εκ των προτέρων. Για το σκοπό αυτό, παρέχεται η διαδικασία ReadBMPheader, η οποία διαβάζει μόνο την κεφαλίδα του αρχείου. Καλώντας το, μπορείτε να ελέγξετε εάν η εικόνα έχει εγγραφεί στην επιλεγμένη μορφή 256 χρωμάτων, να μάθετε τις διαστάσεις της και μόνο στη συνέχεια να εκχωρήσετε μνήμη για αυτήν και να την τοποθετήσετε στην εκχωρημένη προσωρινή μνήμη.

Τώρα ας συνδέσουμε μια νέα ενότητα στο πρόγραμμά μας. Για να γίνει αυτό, θα γράψουμε το όνομά του στην οδηγία χρήσεων και θα παρέχουμε επίσης έναν πίνακα για την αποθήκευση δεδομένων σχετικά με την παλέτα, ο οποίος μπορεί να περιγραφεί ως εξής:

P: πίνακας byte.

Η διαδικασία CreateSprite, η οποία καλεί τη λειτουργία ανάγνωσης ενός αρχείου από μια νέα ενότητα, έχει απλοποιηθεί (βλ.).

Δομή αρχείου Bmp

Ονομα Μήκος Προκατάληψη Περιγραφή
Κεφαλίδα αρχείου (BitMapFileHeader)
Τύπος2 0 Υπογραφή "BM"
Μέγεθος4 2 μέγεθος αρχείου
Κράτηση 12 6 Κατοχυρωμένα
Κράτηση 22 8 Κατοχυρωμένα
OffsetBits4 10 Μετατόπιση εικόνας από την αρχή του αρχείου
Κεφαλίδα πληροφοριών (BitMapInfoHeader)
Μέγεθος4 14 Μήκος κεφαλίδας
Πλάτος4 18 Πλάτος εικόνας, σημεία
Υψος4 22 Ύψος εικόνας, σημεία
Αεροπλάνα2 26 Αριθμός αεροπλάνων
BitCount2 28 Βάθος χρώματος, bits ανά κουκκίδα
Συμπίεση4 30 Τύπος συμπίεσης (0 - μη συμπιεσμένη εικόνα)
SizeImage4 34 Μέγεθος εικόνας, byte
XpelsPerMeter4 38 Οριζόντια ανάλυση, κουκκίδες ανά μέτρο
YpelsPerMeter4 42 Κάθετη ανάλυση, κουκκίδες ανά μέτρο
ΧρώματαΧρησιμοποιημένα4 46 Αριθμός χρωμάτων που χρησιμοποιούνται (0 είναι το μέγιστο δυνατό για ένα δεδομένο βάθος χρώματος)
ΧρώματαΣημαντικά4 50 Αριθμός βασικών χρωμάτων
Πίνακας χρωμάτων (παλέτα)
ColorTable1024 54 256 στοιχεία των 4 byte
Δεδομένα εικόνας (BitMap Array)
ΕικόναΜέγεθος1078 Η εικόνα καταγράφεται σε σειρές από αριστερά προς τα δεξιά και από κάτω προς τα πάνω

Λίστα 1

μονάδα bmpread? (διαδικασίες για εργασία με Bmp) τύπος διεπαφής arttype = arrayof byte. arptr = ^artype; bmFileHeader = εγγραφή (κεφαλίδα αρχείου) Typf: λέξη; (υπογραφή ) Μέγεθος: longint; (μήκος αρχείου σε byte) Res1: word; (με κράτηση) Res2: λέξη; (με κράτηση) OfBm: longint; (μετατόπιση εικόνας σε byte (1078)) τέλος. bmInfoHeader = εγγραφή (κεφαλίδα πληροφοριών) Μέγεθος: longint; (μήκος κεφαλίδας σε byte (40)) Widt: longint; (πλάτος εικόνας (σε pixel)) Heig: longint; (ύψος εικόνας (σε pixel)) Σχέδιο: λέξη; (αριθμός επιπέδων (1)) BitC: λέξη; (βάθος χρώματος (bits ανά κουκκίδα) (8)) Comp: longint; (τύπος συμπίεσης (0 - όχι)) SizI: longint; (μέγεθος εικόνας σε byte) XppM: longint; (οριζόντια ανάλυση) ((κουκκίδες ανά μέτρο - συνήθως 0)) YppM: longint; (κάθετη ανάλυση) ((κουκκίδες ανά μέτρο - συνήθως 0)) NCoL: longint; (αριθμός χρωμάτων) ((εάν το μέγιστο επιτρεπόμενο είναι 0)) NCoI: longint; (αριθμός βασικών χρωμάτων) τέλος. bmHeader = εγγραφή (πλήρης κεφαλίδα αρχείου) f: bmFileHeader; (κεφαλίδα αρχείου) i: bmInfoHeader; (κεφαλίδα πληροφοριών) p: arrayof byte; (πίνακας παλέτας) τέλος? bmhptr = ^bmHeader; (διαβάζοντας μια εικόνα από ένα αρχείο Bmp) διαδικασία ReadBMP(image:arptr; (πίνακας με εικόνα) xim,yim:word; (διαστάσεις) pal:arptr; (παλέτα) όνομα αρχείου:string); (όνομα αρχείου) (ανάγνωση κεφαλίδας αρχείου Bmp) διαδικασία ReadBMPheader(header:bmhptr;όνομα αρχείου:string); υλοποίηση ($R-) (ανάγνωση εικόνας από αρχείο Bmp) διαδικασία ReadBMP(image:arptr; xim,yim:word; pal:arptr;όνομα αρχείου:string); var h: bmHeader; i:ακέραιος; bmpfile: αρχείο; s: longint; έναρξη εκχώρησης (bmpfile, filename); επαναφορά (bmpfile,1); blockread(bmpfile,h,sizeof(h)); (ανάγνωση κεφαλίδας) για το i:= 0 έως το yim-1 αρχίζει (ανάγνωση γραμμή προς γραμμή) blockread(bmpfile,image^[(yim-i-1)*xim],xim); if (xim mod 4)<>0 και στη συνέχεια blockread(bmpfile,s,4 - (xim mod 4)); τέλος; κλείσιμο (bmpfile); για το i ^= 0 έως 255 ξεκινάω (μετασχηματισμός παλέτας) pal^ := h.p shr 2; (μπλε) παλ^ := h.p shr 2; (πράσινο) παλ^ := h.p shr 2; (κόκκινο) τέλος? τέλος; (διαβάζοντας την κεφαλίδα ενός αρχείου Bmp) διαδικασία ReadBMPheader(header:bmhptr;όνομα αρχείου:string); var bmpfile:file; έναρξη εκχώρησης (bmpfile, filename); επαναφορά (bmpfile,1); blockread(bmpfile,header^,sizeof(header^)); κλείσιμο (bmpfile); τέλος; τέλος.

Λίστα 2

( sprite) procedure CreateSprite(s:string; x,y,dx,dy:integer); var f: αρχείο; (αρχείο με εικόνα sprite) start getmem(Sprt.Img,sizeof(SpriteArrayType)); (κατανομή μνήμης για το sprite) getmem(Sprt.Back,sizeof(SpriteArrayType)); (εκχώρηση μνήμης για το buffer) Readbmp(@(Sprt.Img^),Xsize,Ysize,@p,s); Sprt.x:= x; Sprt.y:=y; (ορίστε τις αρχικές τιμές) Sprt.dx:= dx; (συντεταγμένες και αυξήσεις) Sprt.dy:= dy; τέλος;

Στο σημερινό μάθημα θα δούμε την πρώτη μορφή αρχείου στο δρόμο μας. Διαφορετικές μορφές αρχείων έχουν σχεδιαστεί για να αποθηκεύουν διαφορετικές πληροφορίες. Κάθε μορφή καθορίζει έναν τρόπο οργάνωσης δεδομένων σε ένα αρχείο.

Θα γνωρίσουμε πολλές διαφορετικές μορφές αρχείων: εικόνες, τρισδιάστατα μοντέλα, αρχεία ήχου, αρχεία βίντεο. Ας ξεκινήσουμε με μια από τις απλούστερες μορφές γραφικών - BMP.

BMP - bitmap - bitmap. Η έννοια της «χαρτογράφησης» προέρχεται από τα μαθηματικά. Στα μαθηματικά, μια χαρτογράφηση είναι πολύ κοντά στην έννοια της συνάρτησης. Για απλότητα, θεωρήστε τη λέξη bitmap ως εικόνα (αν και δεν είναι).

Πληροφορίες αρχείου BMP

Κάθε αρχείο bitmap έχει μια κεφαλίδα 14 byte. Πεδία για αυτήν την κεφαλίδα:

2 byte. Συμβολοσειρά BM (στα Windows).
4 byte. Μέγεθος αρχείου σε byte.

2 byte. Δεσμευμένο πεδίο. Πρέπει να αρχικοποιηθεί στο μηδέν.
4 byte. Η διεύθυνση από την οποία ξεκινά η ίδια η εικόνα. Ή με άλλα λόγια - μια μετατόπιση στην αρχή της εικόνας.

Ας δημιουργήσουμε μια εικόνα 100x100 pixel. Κάθε pixel καταλαμβάνει 32 bit. Η κεφαλίδα του αρχείου θα μοιάζει με αυτό:

Β.Μ.
14+40+100*100*4
0
0
14+40

Σημαντική σημείωση: αυτοί οι αριθμοί αποθηκεύονται στην πραγματικότητα ως μια ακολουθία byte. Ελπίζω ότι αυτό είναι ξεκάθαρο. Εδώ (και στο επόμενο παράδειγμα) τα έχω τακτοποιήσει σε μια στήλη για ευκολία αντίληψης.

Ας ασχοληθούμε με το δεύτερο πεδίο. 14 - μέγεθος κεφαλίδας αρχείου. 40 είναι το μέγεθος του τίτλου της εικόνας (περισσότερα για αυτό παρακάτω), 100*100 είναι ο αριθμός των pixel. Και επιπλέον, εφόσον συμφωνήσαμε ότι κάθε pixel θα καταλαμβάνει 32 bit (4 byte), πρέπει να πολλαπλασιάσουμε τον αριθμό των pixel επί τέσσερα.

Τελευταίο πεδίο: Η ίδια η εικόνα ξεκινά αμέσως μετά την κεφαλίδα του αρχείου (14 byte) και την κεφαλίδα της εικόνας (40 byte).

Πληροφορίες εικόνας BMP (Κεφαλίδα εικόνας)

Υπάρχουν πολλές εκδόσεις του BMP. Μπορείτε να προσδιορίσετε την έκδοση από το μέγεθος του τίτλου της εικόνας. Θα χρησιμοποιήσουμε την έκδοση των Windows V3, η οποία καταλαμβάνει 40 byte. Άλλες εκδόσεις λαμβάνουν 12, 64, 108, 124 byte.

Στο WinAPI, η δομή BITMAPINFOHEADER χρησιμοποιείται για την αποθήκευση της έκδοσης bmp των Windows V3.

Πεδία κεφαλίδας Windows V3:

4 byte. Μέγεθος κεφαλίδας. Ρυθμίζεται πάντα σε 40 byte.
4 byte. Το πλάτος της εικόνας σε pixel.
4 byte. Το ύψος της εικόνας σε pixel.
2 byte. Αυτό το πεδίο περιέχει πάντα ένα.
2 byte. Το βάθος χρώματος είναι ο αριθμός των bit σε ένα pixel.
4 byte. Μέθοδος συμπίεσης.
4 byte. Μέγεθος εικόνας. Το μέγεθος της ίδιας της εικόνας υποδεικνύεται εδώ - χωρίς να λαμβάνεται υπόψη το μέγεθος των επικεφαλίδων.
4 byte. Οριζόντια ανάλυση σε pixel ανά μέτρο (ο αριθμός των pixel σε ένα μέτρο).
4 byte. Κατακόρυφη ανάλυση σε pixel ανά μέτρο (ο αριθμός των pixel σε ένα μέτρο).
4 byte. Αριθμός χρωμάτων στην παλέτα.
4 byte. Ο αριθμός των σημαντικών χρωμάτων στην παλέτα.

Τώρα ας δούμε πώς θα μοιάζει ο τίτλος της εικόνας στην περίπτωσή μας:

40
100
100
1
32
0
100*100*4
2795
2795
0
0

Για τη μέθοδο συμπίεσης, επιλέξαμε 0 - χωρίς συμπίεση. Είναι δυνατές και άλλες τιμές. Ανάμεσα στα ενδιαφέροντα: BI_JPEG (τιμή - 4) - συμπίεση που χρησιμοποιείται σε εικόνες jpeg και BI_PNG (τιμή - 5) - συμπίεση που χρησιμοποιείται σε εικόνες png.

Ρυθμίσαμε την οριζόντια και κάθετη ανάλυση στα 2795. Στα περισσότερα προγράμματα επεξεργασίας γραφικών, κατά τη δημιουργία μιας εικόνας, η ανάλυση ορίζεται στα 71 pixel ανά ίντσα (ppi - pixel per inch)). Άρα, τα 71 ppi είναι 2795 pixels ανά μέτρο. Η ανάλυση χρησιμοποιείται για να δώσει στην εικόνα φυσικό μήκος (για έξοδο σε εκτυπωτή, για παράδειγμα).

Μετά τις επικεφαλίδες υπάρχει μια χρωματική παλέτα. Εάν δεν υπάρχει, τότε η εικόνα αρχίζει αμέσως μετά τις επικεφαλίδες. Δεν θα εξετάσουμε προς το παρόν εικόνες με παλέτες.

Δεδομένα εικόνας BMP

Μια εικόνα αποτελείται από εικονοστοιχεία. Η μορφή pixel καθορίζεται από το βάθος χρώματος (βλ. παραπάνω). Στο παράδειγμά μας χρησιμοποιήσαμε 32 bit ανά pixel. Το χρώμα 32 bit αποτελείται συνήθως από τέσσερα κανάλια: άλφα (διαφάνεια), κόκκινο, πράσινο, μπλε: ARGB (Alpha, Red, Green, Blue). Μερικές φορές το κανάλι άλφα δεν χρησιμοποιείται, οπότε η εικόνα μπορεί να καταλαμβάνει ακόμα 32 bit, απλώς κατά τον υπολογισμό δεν δίνουν προσοχή στις τιμές ενός καναλιού. Σε αυτήν την περίπτωση, τα ονόματα των καναλιών γράφονται ως εξής: XRGB.

Κάθε κανάλι καταλαμβάνει 8 bit (1 byte) και μπορεί να λάβει 256 τιμές: από μηδέν έως 255 (0x00 έως 0xff).

Στο bmp, η εικόνα αποθηκεύεται γραμμή προς γραμμή από κάτω προς τα πάνω, δηλ. Πρώτα γράφονται οι κάτω γραμμές και μετά οι πάνω. Βεβαιωθείτε για αυτό: φορτώστε μία από τις εικόνες από την πρώτη άσκηση και αποθηκεύστε μόνο τις μισές γραμμές αυτής της εικόνας σε άλλο αρχείο.

Σε βάθος χρώματος 32 bit, τα κανάλια σε bmp γράφονται ως εξής: BGRA. Με αυτή τη σειρά: μπλε, πράσινο, κόκκινο, άλφα.

Το μέγεθος της γραμμής δεδομένων στην εικόνα bmp πρέπει να είναι πολλαπλάσιο των τεσσάρων (σε byte). Εάν αυτό δεν συμβαίνει, τότε η συμβολοσειρά είναι γεμάτη με μηδενικά. Αυτό συμβαίνει εάν χρησιμοποιούνται 1,2,4,8,16,24 bit ανά κανάλι. Για παράδειγμα, έχουμε μια εικόνα πλάτους 3 pixel και χρησιμοποιούμε χρώμα 16 bit. Πλάτος γραμμής: 16*3 = 48 (6 byte). Αλλά το μήκος της γραμμής πρέπει να είναι πολλαπλάσιο των τεσσάρων, επομένως προστίθενται δύο ακόμη byte και το μήκος της γραμμής σε αυτό το παράδειγμα θα είναι οκτώ byte. Αν και τα δύο τελευταία byte κάθε γραμμής δεν θα αποθηκεύουν χρήσιμες πληροφορίες. Είναι απαραίτητο να ληφθεί υπόψη η προϋπόθεση ότι το μέγεθος της γραμμής είναι πολλαπλάσιο του τεσσάρου όταν εργάζεστε με εικόνες που δεν είναι 32 bit.

Τώρα ας συνεχίσουμε με το παράδειγμά μας και ας χρησιμοποιήσουμε τον κώδικα για να δημιουργήσουμε μια εικόνα. Κάθε pixel θα αρχικοποιηθεί με ένα τυχαίο χρώμα:

Std::ofstream os("temp.bmp", std::ios::binary); ανυπόγραφη υπογραφή χαρακτήρων = ("B", "M"); ανυπόγραφο int Μέγεθος αρχείου = 14 + 40 + 100*100*4; ανυπόγραφο int δεσμευμένο = 0; ανυπόγραφο int offset = 14 + 40; ανυπόγραφο int headerSize = 40; ανυπόγραφες διαστάσεις int = ( 100, 100 ); ανυπόγραφο σύντομο colorPlanes = 1; ανυπόγραφο σύντομο bpp = 32; ανυπόγραφη συμπίεση int = 0; ανυπόγραφο int imgSize = 100*100*4; ανυπόγραφη ανάλυση int = ( 2795, 2795 ); ανυπόγραφο int pltColors = 0; ανυπόγραφο int impColors = 0; os.write(reinterpret_cast (υπογραφή), sizeof(υπογραφή)); os.write(reinterpret_cast (&fileSize), sizeof(fileSize)); os.write(reinterpret_cast (&δεσμευμένο), sizeof(δεσμευμένο)); os.write(reinterpret_cast (&offset), sizeof(offset)); os.write(reinterpret_cast (&headerSize), sizeof(headerSize)); os.write(reinterpret_cast (dimensions), sizeof(dimensions)); os.write(reinterpret_cast (&colorPlanes), sizeof(colorPlanes)); os.write(reinterpret_cast (&bpp), sizeof(bpp)); os.write(reinterpret_cast (&συμπίεση), sizeof(συμπίεση)); os.write(reinterpret_cast (&imgSize), sizeof(imgSize)); os.write(reinterpret_cast (ανάλυση), sizeof(ανάλυση)); os.write(reinterpret_cast (&pltColors), sizeof(pltColors)); os.write(reinterpret_cast (&impColors), sizeof(impColors)); ανυπόγραφο char x,r,g,b; για (int i=0; i< dimensions; ++i) { for (int j=0; j < dimensions; ++j) { x = 0; r = rand() % 256; g = rand() % 256; b = rand() % 256; os.write(reinterpret_cast(&b),μέγεθος(β)); os.write(reinterpret_cast (&g),μέγεθος(g)); os.write(reinterpret_cast (&r),μέγεθος(r)); os.write(reinterpret_cast (&x),μέγεθος(x)); ) ) os.close();

Ως αποτέλεσμα της εκτέλεσης αυτού του κώδικα, θα δημιουργηθεί ένα αρχείο temp.bmp στο φάκελο με το έργο σας (αν εκτελέσατε το πρόγραμμα μέσω του προγράμματος εντοπισμού σφαλμάτων (F5)) ή στο φάκελο Debug της λύσης (αν εκτελέσατε το εκτελέσιμο αρχείο .exe), το οποίο μπορεί να ανοίξει σε οποιοδήποτε πρόγραμμα προβολής εικόνων. Η εικόνα αποτελείται από χρωματιστές κουκκίδες.

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

τι είναι ένα .bmp αρχείο;

Η μορφή αρχείου BMP αποτελείται από ένα σύνολο προδιαγραφών κωδικοποίησης εικόνας που εφαρμόζονται για την παραγωγή μη συμπιεσμένων αρχείων εικόνας ράστερ. Αυτά τα αρχεία εικόνας bitmap επισυνάπτονται με κεφαλίδες αρχείων που περιλαμβάνουν αναγνωριστικά bitmap μεταξύ άλλων λεπτομερειών που αφορούν το περιεχόμενο εικόνας των αντίστοιχων αρχείων BMP. Το περιεχόμενο ψηφιακής εικόνας που είναι αποθηκευμένο σε ένα αρχείο BMP αποτελείται από pixel μέσα σε ένα ορθογώνιο πλέγμα. Τα εικονοστοιχεία που περιέχονται σε αυτά τα αρχεία BMP μπορούν να ενσωματωθούν με διαφορετικά βάθη χρωμάτων, ανάλογα με τις κεφαλίδες αρχείων των αρχείων BMP. Οι διαβαθμίσεις του γκρι μπορούν επίσης να εφαρμοστούν στα pixel ενός αρχείου .bmp και αυτά τα αρχεία .bmp μπορούν να εξαχθούν σε πιο ευρέως χρησιμοποιούμενες μορφές αρχείων ψηφιακής εικόνας με μικρότερο μέγεθος για βέλτιστη φορητότητα.

πώς να ανοίξω ένα αρχείο .bmp;

Εκκινήστε ένα αρχείο .bmp ή οποιοδήποτε άλλο αρχείο στον υπολογιστή σας, κάνοντας διπλό κλικ σε αυτό. Εάν οι συσχετίσεις αρχείων σας έχουν ρυθμιστεί σωστά, η εφαρμογή που προορίζεται να ανοίξει το αρχείο .bmp θα το ανοίξει. Είναι πιθανό να χρειαστεί να κάνετε λήψη ή να αγοράσετε τη σωστή εφαρμογή. Είναι επίσης πιθανό να έχετε τη σωστή εφαρμογή στον υπολογιστή σας, αλλά τα αρχεία .bmp δεν έχουν συσχετιστεί ακόμη με αυτήν. Σε αυτήν την περίπτωση, όταν προσπαθείτε να ανοίξετε ένα αρχείο .bmp, μπορείτε να πείτε στα Windows ποια εφαρμογή είναι η σωστή για αυτό το αρχείο. Από εκεί και πέρα, το άνοιγμα ενός αρχείου .bmp θα ανοίξει τη σωστή εφαρμογή.

εφαρμογές που ανοίγουν ένα αρχείο .bmp

Adobe Photoshop CS6 για Microsoft Windows

Το Adobe Photoshop CS6 για Microsoft Windows είναι ένα λογισμικό επεξεργασίας και διαχείρισης εικόνων με δυνατότητα λήψης σε υπολογιστές με Windows, συγκεκριμένα Windows 7 (χωρίς SP και με SP1) και Windows XP με SP3. Αυτό το λογισμικό συνοδεύεται από νέες δυνατότητες και εργαλεία για εύκολη, γρήγορη, διασκεδαστική και προηγμένη επεξεργασία ψηφιακών εικόνων. Ένα χαρακτηριστικό που καθιστά αυτό το πρόγραμμα αξιόπιστο για την επεξεργασία εικόνας είναι το Adobe Mercury Graphics Engine, το οποίο είναι μια τεχνολογία κινητήρα που παρέχει ταχύτερη και υψηλή ποιότητα απόδοσης. Τα εργαλεία Content-Aware είναι νέες σχεδιασμένες λειτουργίες για εύκολο ρετουσάρισμα εικόνων, καθώς μπορείτε να περικόψετε εικόνες χωρίς κανένα εφέ, να διορθώσετε αυτόματα τη θαμπάδα ή τις καμπυλότητες του ευρυγώνιου φακού, να αφαιρέσετε τα κόκκινα μάτια και να προσαρμόσετε την ισορροπία χρωμάτων όπως φωτεινότητα και αντίθεση. Αυτό το πρόγραμμα επεξεργασίας εικόνων συνοδεύεται επίσης με δυνατότητα αυτόματης ανάκτησης που μπορεί να δημιουργήσει αντίγραφα ασφαλείας οποιωνδήποτε μη αποθηκευμένων εικόνων, επιλογή αποθήκευσης φόντου, Συλλογή θολώματος, εργαλείο περικοπής, δημιουργία βίντεο και πολλά άλλα. Με όλες αυτές τις νέες βελτιωμένες λειτουργίες και μια σύγχρονη φιλική προς τον χρήστη διεπαφή, η επεξεργασία ψηφιακών φωτογραφιών δεν μπορεί ποτέ να είναι τόσο διασκεδαστική και εύκολη χωρίς το Photoshop CS6.

Adobe Photoshop CS6 για Mac

Adobe Photoshop CS6 για Mac

Το Adobe Photoshop CS6 για Mac είναι η έκδοση του λογισμικού διαχείρισης εικόνων "Creative Suite" που έχει σχεδιαστεί αποκλειστικά για υπολογιστές Mac, ιδιαίτερα για Mac OS X v10.6 έως 10.7 σε 64-bit. Αυτό το πρόγραμμα επεξεργασίας εικόνας συνοδεύεται από ένα νέο σύνολο χαρακτηριστικών και εργαλείων, όπως το Mercury Graphics Engine που αναπτύχθηκε από την ίδια εταιρεία για γρήγορη και υψηλής ποιότητας απόδοση βελτίωσης εικόνας, χαρακτηριστικά Content-Aware, διαισθητικά επανασχεδιασμένα εργαλεία για το σχεδιασμό ταινιών, ροές εργασιών , Συλλογή Blur, εργαλείο περικοπής και πολλά άλλα. Το Adobe Mercury Graphics Engine λειτουργεί με τρόπο που κάνει την εργασία επεξεργασίας εύκολη και γρήγορη στην ολοκλήρωση. Αυτό επιτρέπει επίσης την κοινή χρήση και τη μετεγκατάσταση εικόνων με επιλογές αυτόματης ανάκτησης και αποθήκευσης φόντου. Τα νέα εργαλεία Content-Aware είναι κατασκευασμένα για εύκολο και ελεγχόμενο τρόπο ρετουσάρισμα ή βελτίωσης εικόνων που έχουν ως αποτέλεσμα μια πιο ικανοποιημένη έξοδο. Βασικά επιτρέπει σε κάθε χρήστη να διορθώνει αυτόματα εικόνες, να τις περικόπτει και να διορθώνει τις ευρυγώνιες καμπυλότητες του φακού.

ACD Systems Canvas 14

ACD Systems Canvas 14

Η ACD Systems International Inc. είναι ο δημιουργός του ACD Systems Canvas 14, το οποίο είναι ένα λογισμικό τεχνικής λύσης γραφικών, που επιτρέπει στους χρήστες να αναλύουν δεδομένα, να βελτιώνουν τα γραφικά και να μοιράζονται όλες τις πληροφορίες με ευκολία και ταχύτητα. Αυτό το πρόγραμμα έχει σχεδιαστεί με πλήρη εργαλεία που βοηθούν τους χρήστες να κάνουν τεχνικά γραφικά και απεικονίσεις με ακρίβεια. Αποτελείται από εργαλεία επεξεργασίας που ποικίλλουν από εργαλεία επεξεργασίας εικόνας έως εργαλεία απεικόνισης αντικειμένων. Οποιαδήποτε αποτελέσματα δημιουργούνται από αυτό το πρόγραμμα κάνουν καλές παρουσιάσεις για έργα, προτάσεις και άλλους σκοπούς για κάθε επιχειρηματικό τομέα που σχετίζεται με γραφικά και μηχανική. Περισσότερα σχετικά με τις δυνατότητες, οι χρήστες μπορούν να εργαστούν με εικόνες ράστερ και διανυσματικά γραφικά χρησιμοποιώντας το ίδιο αρχείο με την επιλογή επεξεργασίας με αλλαγή μεγέθους και κλιμάκωση αντικειμένων, σχεδίαση σχημάτων, καθώς και εισαγωγή μελανιών ή πλάτη. Υπάρχει επίσης ένα εργαλείο για την προσθήκη κειμένων ή ετικετών και διαστάσεων μορφοποίησης, καθώς και τη δημιουργία γραφημάτων. Με αυτό το πρόγραμμα, οι χρήστες μπορούν να μοιράζονται ολοκληρωμένα έργα μέσω παρουσιάσεων ή δημοσιεύσεων.

Συστήματα ACD ACDSβλέπε 15

Συστήματα ACD ACDSβλέπε 15

Το ACD Systems ACDSee 15 είναι ένα λογισμικό φωτογραφίας που διαθέτει πρόγραμμα οργάνωσης εικόνων, πρόγραμμα προβολής και επεξεργασίας εικόνας RAW/για Microsoft Windows και Mac OS X 10.6 (Windows XP με Service Pack 2, Vista, 7 & 8; Mac OS X 10.5, 10.6 , 10.7 και Mountain Lion). Αναπτύχθηκε από την ACD Systems International, Inc. και αρχικά διανεμήθηκε ως εφαρμογή 16 bit που αργότερα αναβαθμίστηκε με έκδοση 32 bit. Αυτή η ελάχιστη απαίτηση υλικού για αυτήν την εφαρμογή είναι ένας επεξεργαστής Intel Pentium III/ AMD Athlon ή αντίστοιχος με 512 MB RAM (με 310 MB ελεύθερο χώρο στον σκληρό δίσκο), έναν προσαρμογέα υψηλής έγχρωμης οθόνης σε ανάλυση 1024 x 768 και μια συσκευή εγγραφής CD/DVD. Το ACDSee διαχειρίζεται και υποστηρίζει αρχεία βίντεο και ήχου σε μορφές που περιλαμβάνουν GIF, BMP, JPG, PNG, MP3, PSD, WAV, MPEG και TIFF. Οι χρήστες μπορούν να προβάλλουν, να επεξεργάζονται, να προσθέτουν εφέ και να οργανώνουν συλλογές φωτογραφιών και βίντεο που μπορούν να κοινοποιηθούν στο διαδίκτυο. Οι φωτογραφίες μπορούν να οργανωθούν καθώς εισάγονται από την κάμερα ή άλλη συσκευή αποθήκευσης. Διαθέτει επίσης υποστήριξη προβολής χάρτη και γεωγραφικών ετικετών που επιτρέπουν στους χρήστες να βλέπουν τη θέση των εικόνων από κάμερες με δυνατότητα GPS. Δυνατότητες όπως η γρήγορη περιήγηση, η σάρωση, η επεξεργασία και οι επιλογές δημιουργίας αντιγράφων ασφαλείας διευκολύνουν την ταξινόμηση των φωτογραφιών κατά ημερομηνία και εκδήλωση και την αποθήκευση αντιγράφων ασφαλείας σε CD, DVD και Blu-Ray.

Κλείσε