Εικόνα PNG (.png)
Σύσταση ΤυπικόΤο Portable Network Graphics (PNG) είναι μια μορφή αρχείου γραφικών ράστερ χωρίς περιορισμούς πνευματικής ιδιοκτησίας, η οποία υποστηρίζει συμπίεση δεδομένων χωρίς απώλειες, χρώματα με ευρετήριο και μεταβλητή διαφάνεια καναλιού άλφα.
Μετατροπή PNG σε JPG
Δωρεάν μετατροπέας από PNG σε JPG εντός του προγράμματος περιήγησης. Μετατρέψτε αρχεία άμεσα στη συσκευή σας.
Συμπίεση PNG στο διαδίκτυο
Ιδιωτικά - τα αρχεία δεν φεύγουν ποτέ από τη συσκευή σας
Επιθεώρηση & Μεταδεδομένα
Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία PNG ελέγχοντας την αρχική δυαδική ακολουθία byte:
Υπογραφή κεφαλίδας σε επίπεδο byte (Magic Bytes)
Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία PNG ελέγχοντας την αρχική δυαδική ακολουθία byte:
ΔΕΚΑΕΞΑΔΙΚΗ ΥΠΟΓΡΑΦΗ (OFFSET 0):
89 50 4E 47 0D 0A 1A 0AΑΝΑΠΑΡΑΣΤΑΣΗ ASCII: .PNG....
Τυποποίηση: Σύσταση του W3C (1996) / ISO/IEC 15948:2004
Τεχνικές Προδιαγραφές
| Αρχιτεκτονική Περιέκτη | Δυαδικό κοντέινερ βασισμένο σε τμήματα (chunks) με επαλήθευση CRC32 4 byte ανά τμήμα |
| Συμπίεση | Deflate (LZ77 + κωδικοποίηση Huffman) με 5 προγνωστικά φίλτρα γραμμών σάρωσης (None, Sub, Up, Average, Paeth) |
| Σειρά byte (endianness) | Big-Endian (σειρά byte δικτύου) για τα μήκη τμημάτων, τις διαστάσεις και τα CRC |
| Χρωματικοί Χώροι | sRGB, Display P3, Παλέτα με ευρετήριο (1-8 bit), Κλίμακα του γκρι, Truecolor (24/48-bit) |
| Κανάλια & Δομή | RGB + κανάλι άλφα (έως 16 bit ανά κανάλι / 64-bit RGBA) |
| Μέγιστες Διαστάσεις | 2,147,483,647 x 2,147,483,647 εικονοστοιχεία (ακέραιοι 4 byte χωρίς πρόσημο) |
| Διαφάνεια | Πλήρες κανάλι μεταβλητής διαφάνειας alpha 8-bit / 16-bit |
| Ροή δεδομένων και προοδευτική φόρτωση | Ο αλγόριθμος πλέξης 7 περασμάτων Adam7 επιτρέπει την προοδευτική απόδοση γραμμών σάρωσης 2D |
Τεχνικός Πίνακας Σύγκρισης: PNG έναντι Ανταγωνιστών
| Τεχνικό χαρακτηριστικό | PNG (Τρέχον) | WebP | AVIF | JPEG |
|---|---|---|---|---|
| Τύπος συμπίεσης | Αυστηρά χωρίς απώλειες (Deflate + 2D προγνωστικά φίλτρα) | Με απώλειες (VP8) & Χωρίς απώλειες (VP8L) | Με απώλειες (AV1 intra) & Χωρίς απώλειες | Αυστηρά με απώλειες (διακριτός μετασχηματισμός συνημιτόνου) |
| Διαφάνεια Alpha | Πλήρες κανάλι alpha μεταβλητής 8-bit / 16-bit | Υποστηρίζεται κανάλι alpha 8-bit | Υποστηρίζεται alpha 8-bit / 10-bit / 12-bit | Δεν υπάρχει υποστήριξη καναλιού διαφάνειας |
| Μέγεθος αρχείου για φωτογραφίες | Συχνά μεγαλύτερο από τις μορφές με απώλειες για φωτογραφίες· το σχετικό μέγεθος διαφέρει ανάλογα με την εικόνα και τον κωδικοποιητή. | Μπορεί να είναι μικρότερο από το JPEG· τα αποτελέσματα διαφέρουν ανάλογα με την εικόνα και τον κωδικοποιητή. | Μπορεί να είναι μικρότερο από το JPEG· τα αποτελέσματα διαφέρουν ανάλογα με την εικόνα και τον κωδικοποιητή. | Μέτριο βασικό μέγεθος |
| Μέγεθος αρχείου (γραφικά και διεπαφή χρήστη) | Εξαιρετικά συμπαγές για στιγμιότυπα οθόνης, γραμμικά σχέδια και κείμενο | Εξαιρετική λειτουργία χωρίς απώλειες | Καλό, αλλά πιο αργό στην κωδικοποίηση | Κακό (παράγει τεχνουργήματα κουδουνίσματος κατά μήκος αιχμηρών ακμών) |
| Συμβατότητα προγράμματος περιήγησης | Υποστηρίζεται από τα κύρια προγράμματα περιήγησης· η διαθεσιμότητα εξαρτάται από το πρόγραμμα περιήγησης και την έκδοσή του. | Ευρεία υποστήριξη σε πολλά σύγχρονα προγράμματα περιήγησης· η κάλυψη διαφέρει ανάλογα με την έκδοση και την πλατφόρμα. | Υποστηρίζεται από πολλά σύγχρονα προγράμματα περιήγησης· η κάλυψη διαφέρει ανάλογα με την έκδοση και την πλατφόρμα. | Ευρεία υποστήριξη· η διαθεσιμότητα διαφέρει ανάλογα με το προϊόν και την έκδοσή του. |
Συνήθεις τρόποι καταστροφής δεδομένων και οδηγός ανάκτησης δεκαεξαδικών δεδομένων
Το πρόγραμμα προβολής εικόνων εμφανίζει 'Fatal error: Not a valid PNG file' ή δεν καταφέρνει να ανοίξει το αρχείο.
Βασική Αιτία: Τα πρώτα 8 byte αλλοιώθηκαν από λειτουργία μεταφοράς ASCII (μετατροπή του 0x0D 0x0A σε 0x0A ή 0x0D 0x0D 0x0A).
Ανάκτηση: Ανοίξτε το αρχείο σε πρόγραμμα επεξεργασίας hex και επαληθεύστε ότι τα πρώτα 8 byte ταιριάζουν με το '89 50 4E 47 0D 0A 1A 0A'. Η επαναφορά αυτών ακριβώς των 8 byte της κεφαλίδας συχνά αποκαθιστά την εικόνα.
Το pngcheck αναφέρει 'CRC error in chunk IDAT' ή η εικόνα φορτώνεται μερικώς με κατεστραμμένες κάτω γραμμές σάρωσης.
Βασική Αιτία: Φθορά bit στη συμπιεσμένη ροή δεδομένων zlib ή άκυρο άθροισμα ελέγχου CRC32 σε ένα τμήμα IDAT.
Ανάκτηση: Χρησιμοποιήστε το pngcheck -f ή βοηθητικά προγράμματα ανάκτησης ροής Deflate για να υπολογίσετε ξανά τις έγκυρες τιμές CRC32 ή αποσυμπιέστε τις γραμμές σάρωσης που διασώθηκαν έως το κατεστραμμένο μπλοκ.
Η εικόνα αποδίδεται καλά σε προγράμματα προβολής επιτραπέζιων υπολογιστών αλλά αποτυγχάνει σε εφαρμογές iOS.
Βασική Αιτία: Το iOS αναμένει τη μορφή CgBI της Apple με αντίστροφη σειρά byte ή μη τυπικά τμήματα χρωματικού χώρου.
Ανάκτηση: Κανονικοποιήστε την εικόνα χρησιμοποιώντας το 'pngcrush -revert-iphone-optimizations' για να επαναφέρετε την τυπική σειρά RGBA του W3C.
Ανάλυση ασφάλειας και διανύσματα επίθεσης στον αναλυτή
Το PNG υποστηρίζεται από πολλά λειτουργικά συστήματα και εφαρμογές. Οι κίνδυνοι ασφάλειας περιλαμβάνουν εξάντληση της μνήμης του αποκωδικοποιητή και κακόβουλα βοηθητικά τμήματα.
Γνωστά διανύσματα επίθεσης
- Υπερμεγέθη τμήματα μεταδεδομένων tEXt και zTXt που προκαλούν άρνηση υπηρεσίας λόγω εξάντλησης μνήμης (OOM) σε αποκωδικοποιητές που δεν εκτελούνται σε απομονωμένο περιβάλλον.
- Ευπάθειες υπερχείλισης ενδιάμεσης μνήμης στον σωρό σε παλαιότερες εκδόσεις του libpng (π.χ. CVE-2015-8126 στο png_set_PLTE).
- Επιθέσεις αποσυμπίεσης με πλημμύρα εικονοστοιχείων, όπου μια εικόνα μικρού μεγέθους δηλώνει τεράστιες διαστάσεις (π.χ. 100.000 x 100.000 pixel).
- Στεγανογραφική εξαγωγή που κρύβει κρυπτογραφημένα ωφέλιμα φορτία σε βοηθητικά ιδιωτικά τμήματα (π.χ. eXIf ή προσαρμοσμένους τύπους τμημάτων).
Βέλτιστες αμυντικές πρακτικές: Να επικυρώνετε πάντα τις διαστάσεις της εικόνας πριν δεσμεύσετε buffer εικονοστοιχείων στη μνήμη. Αφαιρείτε τα μη απαραίτητα βοηθητικά τμήματα (eXIf, tEXt) από τις μεταφορτώσεις χρηστών χρησιμοποιώντας ένα εργαλείο καθαρισμού ασφαλές για τη μνήμη.
Ιστορική Αναδρομή & Ορόσημα
Κύρια Πλεονεκτήματα
- Το PNG χρησιμοποιεί συμπίεση χωρίς απώλειες, επομένως η κωδικοποίηση μιας αμετάβλητης εικόνας δεν προκαλεί απώλειες συμπίεσης· η επεξεργασία ή η μετατροπή χρωμάτων μπορεί, ωστόσο, να αλλάξει τις τιμές των εικονοστοιχείων.
- Η ομαλή διαφάνεια alpha 8-bit επιτρέπει καθαρή ανάμειξη σε σύνθετα φόντα.
- Τα τμήματα διόρθωσης γάμα και χρωματικότητας εξασφαλίζουν συνεπή απόδοση σε διάφορες οθόνες.
Τεχνικοί Περιορισμοί & Μειονεκτήματα
- Σημαντικά μεγαλύτερα μεγέθη αρχείων σε σύγκριση με σύγχρονες μορφές με απώλειες όπως το WebP ή το AVIF για φωτογραφικό περιεχόμενο.
- Χωρίς εγγενή κινούμενα σχέδια πολλαπλών καρέ στο τυπικό PNG (απαιτείται η επέκταση APNG).
- Το μεγάλο βάθος χρώματος (16 bit ανά κανάλι) δημιουργεί τεράστιες μη συμπιεσμένες προσωρινές περιοχές μνήμης αποκωδικοποίησης.
Ενδιαφέροντα Τεχνικά Στοιχεία
- Η υπογραφή PNG των 8 byte βοηθά στον εντοπισμό αλλοίωσης λόγω αλλαγής των τελειών γραμμής CR/LF κατά τη μεταφορά μέσω FTP.
- Το ανεπίσημο αναδρομικό ακρωνύμιο για το PNG ήταν 'PNG's Not GIF'.
- Η Apple χρησιμοποιεί ένα ιδιόκτητο τμήμα CgBI στα PNG εφαρμογών iOS που αντιστρέφει το RGBA σε BGRA για απευθείας απόδοση GPU.
Συχνές Τεχνικές Ερωτήσεις
Γιατί το μέγεθος ενός αρχείου PNG μερικές φορές αυξάνεται όταν αποθηκεύεται σε προγράμματα επεξεργασίας εικόνας;
Διαφορετικές σουίτες λογισμικού χρησιμοποιούν ποικίλα επίπεδα συμπίεσης Deflate και ευριστικά προγνωστικά φίλτρα γραμμών σάρωσης. Προγράμματα όπως το Photoshop συχνά προσαρτούν ασυμπίεστα προφίλ χρωμάτων, μπλοκ μεταδεδομένων XMP και μη βελτιστοποιημένα μεγέθη τμημάτων IDAT. Εξειδικευμένα εργαλεία όπως το File2File.app Compressor επανεκτιμούν και τα 5 φίλτρα γραμμών σάρωσης για να επιτύχουν το ελάχιστο μέγεθος αρχείου.
Ποια είναι η διαφορά μεταξύ PNG-8 και PNG-24;
Το PNG-8 χρησιμοποιεί μια παλέτα χρωμάτων με ευρετήριο έως 256 χρωμάτων (παρόμοια με το GIF), παράγοντας πολύ μικρά αρχεία κατάλληλα για απλά εικονίδια. Το PNG-24 υποστηρίζει 16,7 εκατομμύρια χρώματα (Truecolor 8 bit ανά κανάλι), με το PNG-32 να προσθέτει ένα κανάλι διαφάνειας alpha 8-bit.
Γιατί το PNG διαθέτει 5 προγνωστικά φίλτρα γραμμών σάρωσης;
Το Deflate συμπιέζει επαναλαμβανόμενα μοτίβα byte. Επειδή οι τιμές των φωτογραφικών εικονοστοιχείων ή των εικονοστοιχείων σε διαβαθμίσεις αλλάζουν σταδιακά, το PNG φιλτράρει κάθε γραμμή σάρωσης (None, Sub, Up, Average, Paeth) υπολογίζοντας διαφορές μεταξύ γειτονικών εικονοστοιχείων. Αυτό μετατρέπει τα δεδομένα διαβάθμισης σε συμβολοσειρές byte με τιμές κοντά στο μηδέν, οι οποίες συμπιέζονται πολύ καλύτερα με το Deflate.
Υποστηρίζει το PNG χρωματικούς χώρους CMYK για εμπορική εκτύπωση;
Όχι. Η επίσημη προδιαγραφή PNG του W3C περιορίζει σκόπιμα τους τύπους χρωμάτων σε Grayscale, Indexed και RGB. Οι επαγγελματικές ροές εργασίας εκτύπωσης που απαιτούν CMYK πρέπει να χρησιμοποιούν μορφές αρχείων TIFF ή PDF.
Σχετικά ζεύγη μετατροπής για PNG
Η μετατροπή εικόνων ράστερ PNG σε μορφή JPEG μειώνει το μέγεθος του αρχείου εφαρμόζοντας συμπίεση με απώλειες, γεγονός που κάνει τις εικόνες να φορτώνουν πιο γρήγορα στους ιστότοπους και να καταναλώνουν λιγότερο αποθηκευτικό χώρο.
Η μετατροπή μιας ραστερικής εικόνας JPEG με απώλειες σε μια ραστερική εικόνα PNG χωρίς απώλειες αποτρέπει την περαιτέρω απώλεια ποιότητας και προσθέτει υποστήριξη διαφάνειας μέσω καναλιού άλφα.
Η μετατροπή εικόνων PNG σε WebP μπορεί να μειώσει το μέγεθος του αρχείου διατηρώντας τη διαφάνεια· το αποτέλεσμα εξαρτάται από το αν χρησιμοποιείται κωδικοποίηση με ή χωρίς απώλειες και από το περιεχόμενο της εικόνας.
Η μετατροπή WebP σε PNG δημιουργεί στατική εικόνα για λογισμικό που υποστηρίζει PNG· δεν διατηρεί την κίνηση του WebP και δεν μπορεί να αποκαταστήσει λεπτομέρειες που χάθηκαν στην αρχική συμπίεση.
Η μετατροπή του HEIC σε PNG μετατρέπει φωτογραφίες συμπιεσμένες με HEVC με απώλειες σε ευρέως υποστηριζόμενα αρχεία γραφικών χωρίς απώλειες.
Η μετατροπή διανυσματικών αρχείων SVG σε εικόνες PNG ράστερ μετατρέπει τα κλιμακούμενα γραφικά που βασίζονται σε κώδικα σε πλέγματα σταθερών εικονοστοιχείων για καθολική συμβατότητα με εφαρμογές.
Ενσωματώστε εικόνες PNG ράστερ σε ένα διανυσματικό κοντέινερ SVG XML για προσαρμοστική κλιμάκωση στον ιστό και ενσωμάτωση σε διατάξεις συμβατές με διανυσματικά γραφικά.
Μετατρέψτε γραφικά Adobe Photoshop PSD σε εικόνες PNG χωρίς απώλειες με πλήρη διαφάνεια καναλιού άλφα απευθείας στο πρόγραμμα περιήγησής σας, χωρίς καμία μετάδοση σε διακομιστή.