תמונת PNG (.png)

W3C תקן

PNG (גרפיקת רשת ניידת) הוא פורמט קובץ גרפי מסוג רסטר, ללא מגבלות שימוש, התומך בדחיסת נתונים ללא אובדן, בצבעים ממופתחים ובשקיפות משתנה של ערוץ אלפא.

המר PNG ל-JPG

ממיר חינמי מ-PNG ל-JPG פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.

כיווץ PNG אונליין

פרטי - הקבצים לעולם אינם עוזבים את המכשיר שלך

בדיקה ומטא-נתונים

מערכות הפעלה ומנתחי קבצים מזהים קבצי PNG על ידי בדיקת רצף הבייטים הבינארי הראשוני:

בחר או גרור קבצים לכאן

פרטי - הקבצים לעולם אינם עוזבים את המכשיר שלך

או הדבק Ctrl+V
הבטחת פרטיות ללא העברת נתונים ברשת: 0 בייט הועלו לשרתים חיצוניים. כל העיבוד התבצע באופן מקומי בארגז החול של הדפדפן שלך.

חתימת כותרת ברמת הבייט (Magic Bytes)

מערכות הפעלה ומנתחי קבצים מזהים קבצי PNG על ידי בדיקת רצף הבייטים הבינארי הראשוני:

חתימת HEX (היסט 0):

89 50 4E 47 0D 0A 1A 0A

ייצוג ASCII: .PNG....

תקינה: W3C Recommendation (1996) / ISO/IEC 15948:2004

מפרט טכני

מבנה המכולהמכיל בינארי מבוסס חתיכות (chunks) עם אימות CRC32 בן 4 בתים לכל חתיכה
דחיסהDeflate (LZ77 + קידוד האפמן) עם 5 מסנני שורת סריקה חזויים (None, Sub, Up, Average, Paeth)
סדר בתים (Endianness)Big-Endian (סדר בתים של רשת) עבור אורכי חתיכות, מימדים וערכי CRC
מרחבי צבעsRGB, Display P3, פלטה ממופתחת (1-8 סיביות), גווני אפור, צבע מלא (24/48 סיביות)
ערוצים ומבנהRGB + ערוץ אלפא (עד 16 סיביות לערוץ / RGBA של 64 סיביות)
ממדים מרביים2,147,483,647 x 2,147,483,647 פיקסלים (מספרים שלמים ללא סימן בני 4 בתים)
שקיפותערוץ שקיפות אלפא משתנה מלא של 8 או 16 סיביות
הזרמה ופרוגרסיביותאלגוריתם שזירה Adam7 בעל 7 מעברים מאפשר עיבוד שורות סריקה דו-ממדי פרוגרסיבי

מטריצת השוואה טכנית: PNG מול מתחרים

תכונה טכניתPNG (נוכחי)WebPAVIFJPEG
סוג דחיסהללא אובדן בלבד (Deflate + מסננים דו-ממדיים חזויים)עם אובדן (VP8) וללא אובדן (VP8L)עם אובדן (AV1 intra) וללא אובדןעם אובדן בלבד (המרת קוסינוס בדידה)
שקיפות אלפאערוץ אלפא משתנה מלא בגודל 8 / 16 סיביותתמיכה בערוץ אלפא של 8 סיביותתמיכה באלפא של 8 / 10 / 12 סיביותאין תמיכה בערוץ שקיפות
גודל קובץ (תצלומים)לעיתים קרובות גדול יותר מפורמטים מאבדי נתונים בתצלומים; הגודל היחסי משתנה לפי התמונה והמקודד.עשוי להיות קטן יותר מ-JPEG; התוצאות משתנות לפי התמונה והמקודד.עשוי להיות קטן יותר מ-JPEG; התוצאות משתנות לפי התמונה והמקודד.בסיסי בינוני
גודל קובץ (גרפיקה/ממשק משתמש)קומפקטי במיוחד עבור צילומי מסך, אמנות קווים וטקסטמצב מעולה ללא אובדןטוב, אך איטי יותר לקידודגרוע (יוצר עיוותי צלצול לאורך קצוות חדים)
תאימות דפדפניםנתמך בדפדפנים מרכזיים; הזמינות תלויה בדפדפן ובגרסה.תמיכה רחבה בדפדפנים עדכניים רבים; הכיסוי משתנה לפי גרסה ופלטפורמה.נתמך בדפדפנים עדכניים רבים; הכיסוי משתנה לפי גרסה ופלטפורמה.תמיכה רחבה; הזמינות משתנה לפי המוצר והגרסה.

מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)

מציג התמונות מציג 'שגיאה קריטית: קובץ PNG אינו חוקי' או נכשל בפתיחה.

גורם שורש: 8 הבתים הראשונים שונו על ידי מצב העברת טקסט (ASCII) (המרת 0x0D 0x0A אל 0x0A או 0x0D 0x0D 0x0A).

שחזור: פתח את הקובץ בעורך הקסדצימלי ווודא ש-8 הבתים הראשונים תואמים ל-'89 50 4E 47 0D 0A 1A 0A'. שחזור מדויק של 8 הבתים האלה בכותרת משחזר לעיתים קרובות את התמונה.

pngcheck מדווח על 'שגיאת CRC בחתיכת IDAT' או שהתמונה נטענת חלקית עם שורות סריקה תחתונות פגומות.

גורם שורש: שחיתות סיביות בזרם הנתונים הדחוס של zlib או סכום ביקורת CRC32 לא חוקי בחתיכת IDAT.

שחזור: השתמש ב-pngcheck -f או בכלי שחזור של זרמי Deflate כדי לחשב מחדש ערכי CRC32 תקפים, או לשחזר את שורות הסריקה ששרדו עד לבלוק הפגום.

התמונה מוצגת היטב במציגי שולחן עבודה אך נכשלת ביישומי iOS.

גורם שורש: מערכת iOS מצפה לפורמט החלפת הבתים CgBI הקנייני של אפל, או לחתיכות מרחב צבע לא תקניות.

שחזור: נרמל את התמונה באמצעות 'pngcrush -revert-iphone-optimizations' כדי לשחזר את סדר RGBA התקני של W3C.

ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)

PNG נתמך במערכות הפעלה ובאפליקציות רבות. סיכוני אבטחה כוללים מיצוי זיכרון במפענח ומקטעים נלווים זדוניים.

ווקטורי תקיפה ידועים

  • חתיכות מטא-דאטה מוגזמות בגודלן מסוג tEXt ו-zTXt הגורמות להתרסקות מניעת שירות עקב מחסור בזיכרון (OOM) במפענחים ללא ארגז חול (sandbox).
  • פגיעויות גלישת חוצץ ערימה (heap buffer overflow) בשחרורים ישנים של libpng (לדוגמה CVE-2015-8126 ב-png_set_PLTE).
  • התקפות דחיסת שטף פיקסלים שבהן תמונה עם גודל קובץ קטן מצהירה על מימדים עצומים (לדוגמה 100,000 על 100,000 פיקסלים).
  • הוצאת מידע סטגנוגרפית המסתירה מטענים מוצפנים בחתיכות פרטיות נלוות (כגון eXIf או סוגי חתיכות מותאמים אישית).

שיטות מומלצות להגנה: יש לאמת תמיד את ממדי התמונה לפני הקצאת חוצצי פיקסלים בזיכרון. הסר חתיכות נלוות שאינן חיוניות (eXIf, tEXt) בהעלאות משתמש באמצעות מנקה מאובטח מבחינת זיכרון.

היסטוריה ואבני דרך

2004הפך לתקן בינלאומי בשם ISO/IEC 15948.
1996PNG 1.0 פורסם כהמלצת W3C.
1995נוצר ב-Usenet בקבוצת comp.graphics כתחליף פתוח ל-GIF בעקבות אכיפת דמי הפטנט על אלגוריתם LZW מצד חברת Unisys.

יתרונות מרכזיים

  • PNG משתמש בדחיסה ללא אובדן, ולכן קידוד של תמונה שלא שונתה אינו מוסיף אובדן עקב הדחיסה; עריכה או המרת צבע עדיין עשויות לשנות את ערכי הפיקסלים.
  • שקיפות אלפא חלקה בת 8 סיביות מאפשרת מיזוג נקי על רקעים מורכבים.
  • תיקון גמא ומקטעי כרומטיות מבטיחים תצוגה עקבית במסכים שונים.

מגבלות טכניות וחסרונות

  • גדלי קבצים גדולים משמעותית בהשוואה לפורמטים מודרניים המאבדים נתונים כמו WebP או AVIF עבור תוכן צילומי.
  • אין תמיכה מקורית באנימציה מרובת פריימים בתקן PNG (נדרשת הרחבת APNG).
  • עומק סיביות גבוה (16 סיביות לערוץ) יוצר חוצצי פענוח ענקיים ולא דחוסים בזיכרון.

עובדות טכניות מעניינות

  • כותרת הקסם בת 8 הבתים תוכננה במיוחד כדי לזהות שחיתות סיומי שורות CR/LF בהעברות FTP.
  • הראשי תיבות הרקורסיביים הלא רשמיים של PNG היו 'PNG's Not GIF'.
  • אפל משתמשת בחתיכת CgBI קניינית ביישומי iOS PNG ההופכת את סדר 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 סיביות לערוץ), כאשר PNG-32 מוסיף ערוץ שקיפות אלפא של 8 סיביות.

מדוע ל-PNG יש 5 מסנני שורות סריקה חזויים?

Deflate דוחס דפוסי בתים חוזרים. מכיוון שערכי פיקסלים צילומיים או מעברי צבע משתנים בהדרגה, PNG מסנן כל שורת סריקה (None, Sub, Up, Average, Paeth) על ידי חישוב ההבדלים בין פיקסלים סמוכים. פעולה זו ממירה את נתוני מעבר הצבע למחרוזות של בתים הקרובים לאפס אשר נדחסים באופן דרמטי טוב יותר תחת אלגוריתם Deflate.

האם PNG תומך במרחבי צבע CMYK להדפסה מסחרית?

לא. מפרט PNG הרשמי של W3C מגביל במכוון את סוגי הצבע לגווני אפור, צבע ממופה ו-RGB. תהליכי עבודה מקצועיים להדפסה הדורשים CMYK חייבים להשתמש במכלי TIFF או PDF.

זוגות המרה קשורים ל-PNG

PNG אל JPG

המרת תמונות רסטר מסוג PNG לפורמט JPEG מקטינה את גודל הקובץ באמצעות דחיסה מאבדת נתונים, וכך התמונות נטענות מהר יותר באתרי אינטרנט ותופסות פחות מקום באחסון.

JPG אל PNG

המרת תמונת רסטר מסוג JPEG, המאבדת נתונים, לתמונת רסטר מסוג PNG ללא אובדן נתונים מונעת אובדן איכות נוסף ומוסיפה תמיכה בשקיפות באמצעות ערוץ אלפא.

PNG אל WEBP

המרת תמונות PNG ל-WebP יכולה להקטין את גודל הקובץ תוך שמירה על שקיפות; התוצאה תלויה בשימוש בקידוד מאבד או ללא אובדן ובתוכן התמונה.

WEBP אל PNG

המרת WebP ל-PNG יוצרת תמונת סטילס לתוכנה שתומכת ב-PNG; היא אינה שומרת הנפשה של WebP ואינה יכולה לשחזר פרטים שאבדו במקור מאבד נתונים.

HEIC אל PNG

המרת HEIC ל-PNG הופכת תמונות דחוסות ב-HEVC לקובצי גרפיקה ללא אובדן נתונים, הנתמכים במגוון רחב של תוכנות.

SVG אל PNG

המרת קובצי SVG וקטוריים לתמונות PNG רסטריות הופכת גרפיקה מבוססת קוד, שניתנת לשינוי גודל, לרשת פיקסלים קבועה לתאימות עם מגוון רחב של יישומים.

PNG אל SVG

הטמעת תמונות רסטר מסוג PNG בתוך מכולת SVG XML וקטורית מאפשרת שינוי גודל רספונסיבי באינטרנט ושילוב בפריסות התואמות לגרפיקה וקטורית.

PSD אל PNG

המרת קובצי גרפיקה של Adobe Photoshop PSD לתמונות PNG ללא אובדן נתונים, עם שקיפות מלאה בערוץ אלפא, ישירות בדפדפן וללא העברה לשרת.