Εγχειρίδια για τη γραμμή εντολών

Man » Εγχειρίδιο pam online - λεπτομερής διαδικτυακή τεκμηρίωση για τη σελίδα man pam

🌍
pam - Κοινή μορφή bitmap 2 διαστάσεων Netpbm

ΓΕΝΙΚΑ

Η μορφή εικόνας PAM είναι μια μορφή χάρτη 2 διαστάσεων ελάχιστου κοινού παρονομαστή.

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

Το όνομα "PAM" είναι ένα ακρωνύμιο που προέρχεται από το "Portable Arbitrary Map". Αυτή η ετυμολογία έχει περισσότερο νόημα εάν το εξετάσετε στο πλαίσιο των άλλων ονομάτων μορφών Netpbm: PBM, PGM και PPM.

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

Μια εικόνα PAM περιγράφει ένα δισδιάστατο πλέγμα πλειάδων. Οι πλειάδες είναι διατεταγμένες σε γραμμές και στήλες. Το πλάτος της εικόνας είναι ο αριθμός των στηλών. Το ύψος της εικόνας είναι ο αριθμός των γραμμών. Όλες οι γραμμές έχουν το ίδιο πλάτος και όλες οι στήλες έχουν το ίδιο ύψος. Οι πλειάδες μπορούν να έχουν οποιοδήποτε βαθμό, αλλά όλες οι πλειάδες έχουν τον ίδιο βαθμό. Ο βαθμός των πλειάδων ονομάζεται βάθος της εικόνας. Κάθε μέλος μιας πλειάδας ονομάζεται δείγμα. Ένα δείγμα είναι ένας ακέραιος αριθμός χωρίς σήμα, ο οποίος αντιπροσωπεύει μια θέση κατά μήκος μιας κλίμακας που ξεκινά από το μηδέν και τελειώνει σε μια συγκεκριμένη μέγιστη τιμή που ονομάζεται maxval. Το maxval είναι το ίδιο για κάθε δείγμα στην εικόνα. Η δισδιάστατη συστοιχία όλων των Nων δειγμάτων κάθε πλειάδας ονομάζεται Nοστό επίπεδο ή Nός δίαυλος της εικόνας.

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

Το Σύμπαν των Μορφών Netpbm που Προκαλεί Σύγχυση

Είναι εύκολο να μπερδευτείτε σχετικά με τη σχέση μεταξύ της μορφής PAM και των PBM, PGM, PPM και PNM. Ακολουθεί μια μικρή διευκρίνιση:

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

Το "PAM" είναι στην πραγματικότητα μια τέταρτη μορφή. Αλλά είναι τόσο γενικό που μπορείτε να αναπαραστήσετε τις ίδιες πληροφορίες σε μια εικόνα PAM όπως και σε μια εικόνα PBM, PGM ή PPM. Και στην πραγματικότητα, ένα πρόγραμμα που έχει σχεδιαστεί για να διαβάζει PBM, PGM ή PPM και το κάνει με μια πρόσφατη έκδοση της βιβλιοθήκης Netpbm θα διαβάζει μια ισοδύναμη εικόνα PAM και το πρόγραμμα δεν θα καταλάβαινε τη διαφορά.

Για να περιπλέξει τα πράγματα περισσότερο, υπάρχει μια συλλογή από ρουτίνες βιβλιοθήκης που ονομάζονται "pam" που διαβάζουν και γράφουν τη μορφή PAM, αλλά διαβάζουν και γράφουν τις μορφές PBM, PGM και PPM. Το κάνουν αυτό επειδή οι τελευταίες μορφές είναι πολύ παλαιότερες και πιο δημοφιλείς, οπότε ακόμη και ένα νέο πρόγραμμα πρέπει να λειτουργεί μαζί τους. Έχοντας τη βιβλιοθήκη να χειρίζεται όλες τις μορφές, καθίσταται βολικό να γράφετε προγράμματα που χρησιμοποιούν τη νεότερη μορφή PAM.

Η ΔΙΑΤΑΞΗ

Ένας βολικός τρόπος για να διαβάσετε και να γράψετε με ακρίβεια τη μορφή PAM είναι μέσω της βιβλιοθήκης υπορουτινών C [libnetpbm(1)].

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

Κάθε εικόνα PAM αποτελείται από μια κεφαλίδα ακολουθούμενη αμέσως από ένα ράστερ.

Εδώ είναι ένα παράδειγμα κεφαλίδας:

P7
WIDTH 227
HEIGHT 149
DEPTH 3
MAXVAL 255
TUPLTYPE RGB
ENDHDR

Η κεφαλίδα ξεκινά με τους χαρακτήρες ASCII "P7" ακολουθούμενοι από μια νέα γραμμή. Αυτός είναι ο μαγικός αριθμός.

Σημείωση: Οι εικόνες μικρογραφιών του xv ξεκινούν επίσης με τον μαγικό αριθμό "P7". (Αυτή και η PAM ήταν ανεξάρτητες επεκτάσεις στις μορφές Netpbm). Το υπόλοιπο της μορφής καθιστά εύκολο να διακρίνει κανείς την PAM από αυτή τη μορφή).

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

Μια γραμμή κεφαλίδας αποτελείται από μηδέν ή περισσότερα διαχωρισμένα με κενό διαστήματα σύμβολα ή ξεκινά με "#". Εάν ξεκινά με "#", είναι ένα σχόλιο και το υπόλοιπο αυτής της προδιαγραφής δεν ισχύει για αυτό.

Μια γραμμή κεφαλίδας που έχει μηδέν σύμβολα είναι έγκυρη αλλά δεν έχει νόημα.

Ο τύπος της γραμμής κεφαλίδας προσδιορίζεται από το πρώτο της σύμβολο, το οποίο είναι 8 χαρακτήρες ή λιγότεροι:

ENDHDR Αυτή είναι η τελευταία γραμμή στην κεφαλίδα. Η κεφαλίδα πρέπει να περιέχει ακριβώς μία από αυτές τις γραμμές κεφαλίδας.

HEIGHT Το δεύτερο σύμβολο είναι ένας δεκαδικός αριθμός που αντιπροσωπεύει το ύψος της εικόνας (αριθμός γραμμών). Η κεφαλίδα πρέπει να περιέχει ακριβώς μία από αυτές τις γραμμές κεφαλίδας.

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

DEPTH Το δεύτερο σύμβολο είναι ένας δεκαδικός αριθμός που αντιπροσωπεύει το βάθος της εικόνας (αριθμός επιπέδων ή καναλιών). Η κεφαλίδα πρέπει να περιέχει ακριβώς μία από αυτές τις γραμμές κεφαλίδας.

MAXVAL Το δεύτερο σύμβολο είναι ένας δεκαδικός αριθμός που αντιπροσωπεύει το maxval της εικόνας. Η κεφαλίδα πρέπει να περιέχει ακριβώς μία από αυτές τις γραμμές κεφαλίδας.

TUPLTYPE
Η κεφαλίδα μπορεί να περιέχει έναν αυθαίρετο αριθμό από αυτές τις γραμμές κεφαλίδας, συμπεριλαμβανομένου του μηδενός. Το υπόλοιπο της γραμμής αποτελεί μέρος του τύπου πλειάδας. Το υπόλοιπο της γραμμής δεν γίνεται διαχωρισμός σε σύμβολα, αλλά ο τύπος πλειάδας δεν περιλαμβάνει κανένα κενό διάστημα αμέσως μετά το TUPLTYPE ή στο πολύ τέλος της γραμμής. Δεν περιλαμβάνει μια νέα γραμμή. Πρέπει να υπάρχει κάτι άλλο εκτός από κενό διάστημα μετά το σύμβολο TUPLTYPE.

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

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

Κάθε γραμμή αποτελείται από κάθε tuple της γραμμής, με τη σειρά από αριστερά προς τα δεξιά, συνεχόμενα, χωρίς κανένα διαχωριστικό οποιουδήποτε είδους μεταξύ, πριν ή μετά από tuples.

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

Κάθε δείγμα αποτελείται από έναν μη υπογεγραμμένο ακέραιο σε καθαρή δυαδική μορφή, με το πιο σημαντικό byte πρώτο. Ο αριθμός των byte είναι ο ελάχιστος αριθμός byte που απαιτείται για να αναπαραστήσει το maxval της εικόνας.

Ο χαρακτήρας που αναφέρεται ως "νέα γραμμή" εδώ είναι ο χαρακτήρας που είναι γνωστός στο ASCII ως Line Feed ή LF.

ΠΕΡΙΟΡΙΣΜΟΙ

Το Height, το width, το depth και το maxval είναι τουλάχιστον 1.

Το Height, το width και το depth δεν έχουν καθορισμένο μέγιστο, αλλά οι επεξεργαστές και οι δημιουργοί εικόνων έχουν συνήθως τους δικούς τους περιορισμούς.

Το maxval μιας εικόνας δεν είναι ποτέ μεγαλύτερο από 65535. (Ο λόγος που είναι περιορισμένο είναι για να διευκολύνει την κατασκευή ενός επεξεργαστή εικόνας, στον οποίο οι ενδιάμεσες αριθμητικές τιμές συχνά πρέπει να χωρούν σε 31 ή 32 bit). Δεν υπήρχε καθορισμένος περιορισμός πριν από τον Οκτώβριο του 2005, αλλά ουσιαστικά όλες οι υλοποιήσεις τον έχουν τηρήσει πάντα.

ΟΡΙΣΜΕΝΟΙ ΤΥΠΟΙ TUPLE

Ορισμένοι τύποι tuple ορίζονται σε αυτήν την προδιαγραφή για να καθορίσουν τις επίσημες υπομορφές του PAM για ιδιαίτερα δημοφιλείς εφαρμογές της μορφής. Οι χρήστες της μορφής μπορούν επίσης να ορίσουν τους δικούς τους τύπους tuple και, συνεπώς, τις δικές τους υπομορφές.

Ο τύπος tuple επηρεάζει μόνο τις σημασίες των δειγμάτων (τα οποία είναι μη υπογεγραμμένοι ακέραιοι) στα tuples της εικόνας. Δεν επηρεάζει τον τρόπο με τον οποίο κωδικοποιούνται τα δείγματα ή τα tuples. Ο τύπος tuple μπορεί να επηρεάσει τη σημασία της θέσης ενός tuple στον πίνακα (π.χ., μπορεί να υποδηλώνει σε μια οπτική εικόνα ότι ένα tuple στη Γραμμή 1 είναι αυτό που βρίσκεται στην κορυφή της εικόνας και όχι στο κάτω μέρος).

Ο τύπος tuple δεν καθορίζει ποτέ πόσα δείγματα υπάρχουν σε ένα tuple (αυτό καθορίζεται από τη γραμμή κεφαλίδας DEPTH). Θα μπορούσε να ειπωθεί ότι ο τύπος tuple υπονοεί ένα βάθος (αριθμός δειγμάτων ανά tuple), επειδή ορισμένοι τύποι tuple είναι έγκυροι μόνο σε συνδυασμό με ορισμένες τιμές DEPTH, αλλά είναι καλή πρακτική προγραμματισμού να χρησιμοποιείται το DEPTH για το βάθος κατά την αποκωδικοποίηση του raster και να ελέγχεται ξεχωριστά ότι το βάθος είναι συνεπές με τον τύπο tuple. Επίσης, είναι καλή πρακτική να γίνεται αποδεκτό ένα βάθος που είναι πολύ μεγάλο και απλώς να αγνοούνται τα δείγματα με υψηλότερο αριθμό.


Η PAM χρησιμοποιείται για οπτικές εικόνες

Μια κοινή χρήση των εικόνων PAM είναι η αναπαράσταση οπτικών εικόνων, όπως αυτές που συνήθως αναπαριστώνται από εικόνες στις παλαιότερες και πιο συγκεκριμένες μορφές PBM, PGM και PPM.

Μαύρο και άσπρο

Μια ασπρόμαυρη εικόνα, όπως θα μπορούσε να αναπαρασταθεί εναλλακτικά από μια εικόνα PBM, έχει τύπο πλειάδας "BLACKANDWHITE". Μια τέτοια εικόνα PAM έχει βάθος 1 και maxval 1, όπου το ένα δείγμα σε κάθε πλειάδα είναι 0 για να αναπαριστά ένα μαύρο pixel και 1 για να αναπαριστά ένα λευκό. Το maxval, το ύψος, το πλάτος και η σειρά των πλειάδων στο ράστερ έχουν την προφανή σχέση με αυτά της αντίστοιχης εικόνας PBM.

Σημειώστε ότι στη μορφή PBM, μια τιμή δείγματος μηδέν σημαίνει λευκό, αλλά στην PAM, το μηδέν σημαίνει μαύρο.

Κλίμακα του γκρι

Μια εικόνα κλίμακας του γκρι, όπως θα μπορούσε να αναπαρασταθεί εναλλακτικά από μια εικόνα PGM, έχει τύπο πλειάδας "GRAYSCALE". Μια τέτοια εικόνα PAM έχει βάθος 1. Το maxval, το ύψος, το πλάτος και το ράστερ έχουν την προφανή σχέση με αυτά της αντίστοιχης εικόνας PGM.

Χρώμα

Μια έγχρωμη εικόνα, όπως θα μπορούσε να αναπαρασταθεί εναλλακτικά από μια εικόνα PPM, έχει τύπο πλειάδας "RGB". Μια τέτοια εικόνα PAM έχει βάθος 3. Το maxval, το ύψος, το πλάτος και το ράστερ έχουν την προφανή σχέση με αυτά της εικόνας PPM. Το πρώτο επίπεδο αναπαριστά το κόκκινο, το δεύτερο το πράσινο και το τρίτο το μπλε.

Διαφανές

Καθεμία από τις παραπάνω μορφές οπτικής εικόνας έχει μια παραλλαγή που περιέχει πληροφορίες διαφάνειας. Σε αυτήν την παραλλαγή, στον τύπο πλειάδας προστίθεται το "\_ALPHA" (π.χ. "RGB\_ALPHA") και ένα επιπλέον επίπεδο. Το επίπεδο με τον υψηλότερο αριθμό είναι το επίπεδο αδιαφάνειας (μερικές φορές ονομάζεται επίπεδο άλφα ή επίπεδο διαφάνειας).

Σε αυτό το είδος εικόνας, το χρώμα που αναπαριστά ένα pixel είναι στην πραγματικότητα ένας συνδυασμός ενός ρητά καθορισμένου χρώματος προσκηνίου και ενός χρώματος φόντου που θα προσδιοριστεί αργότερα.

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

Για παράδειγμα, σε μια εικόνα GRAYSCALE_ALPHA, υποθέστε ότι το Επίπεδο 0 υποδεικνύει έναν τόνο του γκρι κατά 60% του λευκού και το Επίπεδο 1 υποδεικνύει αδιαφάνεια 25%. Το χρώμα προσκηνίου είναι το 60% του γκρι και το 25% αυτού συμβάλλει στο τελικό χρώμα του pixel. Το υπόλοιπο 75% προέρχεται από κάποιο χρώμα φόντου. Ας υποθέσουμε λοιπόν ότι το χρώμα φόντου του pixel είναι καθαρό λευκό. Τότε το χρώμα του pixel είναι 90% του λευκού: 25% του χρώματος προσκηνίου 60%, συν 75% του χρώματος φόντου 100%.

Η τιμή του δείγματος είναι το κλάσμα αδιαφάνειας που περιγράφηκε, ως κλάσμα του maxval. Σημειώστε ότι δεν υποβάλλεται σε διόρθωση γάμμα όπως τα δείγματα χρώματος προσκηνίου.

ΤΥΠΟΣ ΜΕΣΩΝ ΔΙΑΔΙΚΤΥΟΥ

Δεν έχει καταχωριστεί κανένας τύπος μέσων δικτύου (γνωστός και ως τύπος MIME, τύπος περιεχομένου) για την PAM στην IANA, αλλά η ανεπίσημη τιμή image/x-portable-arbitrarymap ανατίθεται από αυτήν την προδιαγραφή, για να είναι συνεπής με τις συμβατικές τιμές για τις παλαιότερες μορφές Netpbm.


ΟΝΟΜΑ ΑΡΧΕΙΟΥ

Η συμβατική κατάληξη για το όνομα ενός αρχείου PAM είναι ".pam". Αλλά αυτό δεν είναι υποχρεωτικό.

ΔΕΣ ΕΠΙΣΗΣ

Netpbm(1), pbm(1), pgm(1), ppm(1), pnm(1), libnetpbm(1)

ΠΗΓΗ ΤΕΚΜΗΡΙΩΣΗΣ

Αυτή η σελίδα εγχειριδίου δημιουργήθηκε από το εργαλείο Netpbm 'makeman' από πηγή HTML. Η κύρια τεκμηρίωση βρίσκεται στη διεύθυνση:

http://netpbm.sourceforge.net/doc/pam.html