กลับไปหน้าบทความ

อ่าน 22 นาที

PNG

Portable Network Graphics ( PNG ซึ่ง ออกเสียงอย่างเป็นทางการว่า/ pɪŋ / PING [ 3 ] [ 4 ] และ ออกเสียง แบบ ไม่เป็นทางการว่า / ˌpiːɛnˈdʒiː / PEE - en - JEE [ 5 ] ) เป็น รูป แบบไฟล์...

PNG

การ์ดเครือข่ายพกพา

ภาพ PNG ของลูกเต๋า 4 ลูกที่มีสีต่างกัน โดยมีช่องความโปร่งใส 8 บิต วางซ้อนอยู่บนพื้นหลังลายตารางหมากรุก ซึ่งโดยทั่วไปใช้ในซอฟต์แวร์กราฟิกเพื่อแสดงความโปร่งใส
นามสกุลไฟล์
.png
สื่อประเภทอินเทอร์เน็ต
image/png
รหัสประเภท
  • PNGf
  • PNG (รวมถึงช่องว่างท้ายบรรทัดหนึ่งช่อง)
ตัวระบุประเภทมาตรฐาน (UTI)สาธารณะ.png
การยืนยันการติดเชื้อทางเดินปัสสาวะสาธารณะภาพ
เลขมหัศจรรย์89 50 4e 47 0d 0a 1a 0a( เลขฐานสิบหก 8 ไบต์ )
พัฒนาโดยกลุ่มพัฒนา PNG (บริจาคให้แก่W3C )
การเผยแพร่ครั้งแรก1 ตุลาคม 2539 ( 1 ตุลาคม 1996 )
รุ่นล่าสุด
3.0 24 มิถุนายน 2568 ( 24 มิถุนายน 2025 )
ประเภทของรูปแบบรูปแบบภาพบิตแมปแบบไม่สูญเสียข้อมูล
ขยายไปยังAPNG , JNGและMNG
มาตรฐานISO / IEC 15948 , [ 1 ] IETF RFC 2083
รูปแบบเปิด ?ใช่ใบอนุญาต Zlib/libpng [ 2 ]
เว็บไซต์
  • w3 .org /TR /png (ข้อกำหนด)
  • libpng.org/pub/png ( home site )

Portable Network Graphics ( PNG ซึ่งออกเสียงอย่างเป็นทางการว่า/ pɪŋ / PING [ 3 ] [ 4 ]และออกเสียงแบบไม่เป็นทางการว่า/ ˌpiːɛnˈdʒiː / PEE - en - JEE [ 5 ] )เป็นรูปแบบไฟล์กราฟิกแบบแรสเตอร์ที่รองรับการบีบอัดข้อมูลแบบไม่สูญเสีย[6] PNGได้รับการ พัฒนาขึ้นเพื่อทดแทน Graphics Interchange Format (GIF) ที่ได้รับการปรับปรุงและไม่ต้องจดสิทธิบัตร

PNG รองรับภาพแบบใช้พาเลทสี (ด้วยพาเลทสี RGB 24 บิต หรือ RGBA 32 บิต) ภาพขาวดำ (มีหรือไม่มี ช่องอัลฟาสำหรับความโปร่งใส) และภาพสีเต็มรูปแบบแบบ RGB หรือ RGBA ที่ไม่ใช้พาเลทสี กลุ่มทำงาน PNG ออกแบบรูปแบบนี้สำหรับการถ่ายโอนภาพบนอินเทอร์เน็ตไม่ใช่สำหรับกราฟิกการพิมพ์คุณภาพระดับมืออาชีพ ดังนั้นจึงไม่รองรับพื้นที่สี ที่ไม่ใช่ RGB เช่นCMYK ไฟล์ PNG ประกอบด้วยภาพเดียวในโครงสร้างที่ขยายได้ของ ส่วนย่อย ซึ่งเข้ารหัส พิกเซลพื้นฐานและข้อมูลอื่นๆ เช่น ข้อความแสดงความคิดเห็นและการตรวจสอบความสมบูรณ์ที่บันทึกไว้ในRFC 2083 [ 7 ]

ไฟล์ PNG มีนามสกุลไฟล์ ".png" และประเภทสื่อMIME "image/png" [ 8 ] PNG ได้รับการเผยแพร่เป็น RFC 2083 เชิงข้อมูลในเดือนมีนาคม พ.ศ. 2540 และเป็นมาตรฐานISO/IEC 15948:2004ในปี พ.ศ. 2547 [ 1 ]

ประวัติและพัฒนาการ

แรงจูงใจในการสร้างรูปแบบ PNG มาจากการประกาศเมื่อวันที่ 28 ธันวาคม พ.ศ. 2537 ว่าการใช้งานรูป แบบ Graphics Interchange Format (GIF) จะต้องจ่ายค่าลิขสิทธิ์ให้กับUnisysเนื่องจากสิทธิบัตรของ อัลกอริทึม การบีบอัดข้อมูลLempel–Ziv–Welch (LZW) ที่ใช้ใน GIF [ 9 ]ซึ่งนำไปสู่การวิพากษ์วิจารณ์อย่างมากมายจาก ผู้ใช้ Usenetหนึ่งในนั้นคือ Thomas Boutell ซึ่งเมื่อวันที่ 4 มกราคม พ.ศ. 2538 ได้โพสต์กระทู้สนทนาเบื้องต้นในกลุ่มข่าว Usenet "comp.graphics" ซึ่งเขาได้วางแผนสำหรับทางเลือกฟรีแทน GIF ผู้ใช้รายอื่นในกระทู้นั้นได้เสนอข้อเสนอมากมายซึ่งต่อมาได้กลายเป็นส่วนหนึ่งของรูปแบบไฟล์สุดท้าย Oliver Fromme ผู้เขียนโปรแกรมดูJPEG ยอดนิยม QPEGได้เสนอชื่อ PING ซึ่งในที่สุดก็กลายเป็น PNG ซึ่งเป็นคำย่อแบบวนซ้ำที่หมายความว่าPING ไม่ใช่ GIF [ 10 ] [ 11 ]และยังมีนามสกุล . png อีกด้วย ข้อเสนอแนะอื่นๆ ที่นำมาใช้ในภายหลัง ได้แก่อัลกอริทึมการบีบอัด deflateและ การรองรับ สี 24 บิตซึ่งการขาดการรองรับสี 24 บิตในไฟล์ GIF ยังเป็นแรงผลักดันให้ทีมงานสร้างรูปแบบไฟล์ขึ้นมา กลุ่มนี้จึงเป็นที่รู้จักในชื่อกลุ่มพัฒนา PNG และเมื่อการสนทนาขยายวงกว้างขึ้นอย่างรวดเร็ว ต่อมาจึงใช้รายชื่ออีเมลที่เกี่ยวข้องกับฟอรัมของ CompuServe [ 3 ] [ 12 ]

ข้อกำหนดฉบับเต็มของ PNG ได้รับการเผยแพร่ภายใต้การอนุมัติของWorld Wide Web Consortium (W3C) เมื่อวันที่ 1 ตุลาคม 1996 และต่อมาเป็นRFC 2083 เมื่อวันที่ 15 มกราคม 1997 ข้อกำหนดได้รับการแก้ไขเมื่อวันที่ 31 ธันวาคม 1998 เป็นเวอร์ชัน 1.1 ซึ่งแก้ไขปัญหาทางเทคนิคสำหรับแกมมาและการแก้ไขสีเวอร์ชัน 1.2 ซึ่งเผยแพร่เมื่อวันที่ 11 สิงหาคม 1999 ได้เพิ่มส่วน iTXt เป็นการเปลี่ยนแปลงเพียงอย่างเดียวของข้อกำหนด และเวอร์ชันที่จัดรูปแบบใหม่ของ 1.2 ได้รับการเผยแพร่เป็นฉบับที่สองของมาตรฐาน W3C เมื่อวันที่ 10 พฤศจิกายน 2003 [ 13 ]และเป็นมาตรฐานสากล ( ISO/IEC 15948:2004 ) เมื่อวันที่ 3 มีนาคม 2004 [ 14 ] [ 1 ]

แม้ว่า GIF จะอนุญาตให้สร้างภาพเคลื่อนไหวได้แต่ในตอนแรกมีการตัดสินใจว่า PNG ควรเป็นรูปแบบภาพเดียว[ 15 ]ในปี 2544 นักพัฒนา PNG ได้เผยแพร่ รูปแบบ Multiple-image Network Graphics (MNG) ซึ่งรองรับภาพเคลื่อนไหว MNG ได้รับการสนับสนุนจากแอปพลิเคชันในระดับปานกลาง แต่ไม่เพียงพอในเว็บเบราว์เซอร์หลัก และไม่มีการใช้งานในหมู่นักออกแบบเว็บไซต์หรือผู้เผยแพร่ ในปี 2551 นักพัฒนา Mozilla บางคน ได้เผยแพร่ รูปแบบ Animated Portable Network Graphics (APNG) โดยมีเป้าหมายที่คล้ายกัน APNG เป็นรูปแบบที่ได้รับการสนับสนุนโดย เว็บเบราว์เซอร์ที่ใช้ GeckoและPrestoและยังใช้กันทั่วไปสำหรับภาพขนาดย่อบน ระบบ PlayStation Portable ของ Sony (โดยใช้ส่วนขยายไฟล์ PNG ปกติ) ในปี 2560 เบราว์เซอร์ที่ใช้ Chromium ได้นำการสนับสนุน APNG มาใช้ ในเดือนมกราคม 2563 Microsoft Edgeได้เปลี่ยนมา ใช้ Chromiumจึงได้รับการสนับสนุน APNG ด้วยเหตุนี้ เบราว์เซอร์หลักทั้งหมดจึงรองรับ APNG แล้ว

กลุ่มทำงาน PNG ได้รับการมอบหมายจาก W3C ตั้งแต่วันที่ 14 กันยายน 2021 เพื่อดูแลและพัฒนาข้อกำหนด PNG ข้อกำหนด PNG ฉบับที่สาม ซึ่งเพิ่มการสนับสนุนที่เหมาะสมสำหรับ APNG, ช่วงไดนามิกสูง (HDR) และ ข้อมูล Exifได้รับการเผยแพร่เป็นร่างงานสาธารณะฉบับแรกเมื่อวันที่ 25 ตุลาคม 2022 [ 16 ]และในที่สุดก็กลายเป็นข้อแนะนำของ W3C เมื่อวันที่ 24 มิถุนายน 2025 [ 17 ] [ 18 ]

กลุ่มทำงาน PNG

ข้อกำหนด PNG ดั้งเดิมถูกเขียนขึ้นโดยกลุ่มผู้เชี่ยวชาญและผู้ที่ชื่นชอบด้านกราฟิกคอมพิวเตอร์ เฉพาะกิจ การอภิปรายและการตัดสินใจเกี่ยวกับรูปแบบดำเนินการผ่านทางอีเมล ผู้เขียนดั้งเดิมที่ระบุไว้ใน RFC 2083 ได้แก่: [ 19 ]

รูปแบบไฟล์

ภาพ PNG ที่แสดงด้วยโปรแกรมแก้ไขเลขฐานสิบหก สำหรับ Ubuntu

ส่วนหัวของไฟล์

ไฟล์ PNG เริ่มต้นด้วยลายเซ็นแปดไบต์[ 20 ] (โปรดดูภาพตัวแก้ไขเลขฐานสิบหกทางด้านขวา):

ค่า ( เลขฐานสิบหก ) วัตถุประสงค์
89มีการตั้งค่าบิตสูงเพื่อตรวจจับระบบส่งข้อมูลที่ไม่รองรับข้อมูล 8 บิตและเพื่อลดโอกาสที่ไฟล์ข้อความจะถูกตีความผิดพลาดว่าเป็นไฟล์ PNG หรือในทางกลับกัน
50 4E 47ในรูปแบบ ASCIIตัวอักษรPNGช่วยให้สามารถระบุรูปแบบได้ง่ายหากดูในโปรแกรมแก้ไขข้อความ
0D 0Aการ ใช้รูปแบบการขึ้นบรรทัดใหม่แบบDOS (CRLF) เพื่อตรวจจับการแปลงรูปแบบการขึ้นบรรทัดใหม่ระหว่าง DOS และ Unix
1Aไบต์ที่ใช้หยุดการแสดงผลไฟล์ในระบบ DOS เมื่อใช้ คำสั่ง ประเภทนั้น แล้ว—ซึ่งก็คือ อักขระ สิ้นสุดไฟล์
0Aตัวจบบรรทัดแบบ Unix (LF) สำหรับตรวจจับการแปลงตัวจบบรรทัดจาก Unix เป็น DOS

ส่วนต่างๆ ภายในไฟล์

หลังจากส่วนหัว จะมีชิ้นส่วนต่างๆ ตามมา[ 21 ]ซึ่งแต่ละชิ้นส่วนจะถ่ายทอดข้อมูลบางอย่างเกี่ยวกับรูปภาพ ชิ้นส่วนต่างๆ จะประกาศตัวเองว่าเป็นส่วนสำคัญหรือส่วนเสริมและโปรแกรมที่พบชิ้นส่วนเสริมที่ไม่เข้าใจสามารถละเว้นได้อย่างปลอดภัย โครงสร้างเลเยอร์การจัดเก็บแบบชิ้นส่วนนี้ ซึ่งมีแนวคิดคล้ายกับรูปแบบคอนเทนเนอร์หรือIFF ของAmigaได้รับการออกแบบมาเพื่อให้รูปแบบ PNG สามารถขยายได้ในขณะที่ยังคงความเข้ากันได้กับเวอร์ชันเก่ากว่า โดยให้ความเข้ากันได้แบบไปข้างหน้าและโครงสร้างไฟล์เดียวกันนี้ (ที่มีลายเซ็นและชิ้นส่วนที่แตกต่างกัน) ถูกใช้ในรูปแบบ MNG , JNGและAPNG ที่เกี่ยวข้อง

ชิ้นส่วนประกอบด้วยสี่ส่วน: ความยาว (4 ไบต์, [ 22 ]แบบ big-endian ), ประเภท/ชื่อชิ้นส่วน (4 ไบต์[ 23 ] ), ข้อมูลชิ้นส่วน (ความยาวไบต์) และCRC (รหัสความซ้ำซ้อนแบบวนรอบ/ผลรวมตรวจสอบ; 4 ไบต์[ 22 ] ) CRC เป็น CRC-32ลำดับไบต์เครือข่ายที่คำนวณจากประเภทชิ้นส่วนและข้อมูลชิ้นส่วน แต่ไม่ใช่ความยาว

ความยาว ประเภทชิ้น ข้อมูลชิ้น ซีอาร์ซี
4 ไบต์ 4 ไบต์ ความยาวไบต์ 4 ไบต์

ประเภทของชิ้นส่วนข้อมูลจะได้รับ ชื่อ/ประเภท ASCII สี่ตัวอักษรที่คำนึงถึงตัว พิมพ์ใหญ่และตัวพิมพ์เล็ก เปรียบเทียบกับ FourCCตัวพิมพ์ใหญ่และตัวพิมพ์เล็กที่แตกต่างกันในชื่อ (บิตที่ 5 ของค่าตัวเลขของอักขระ) เป็นฟิลด์บิตที่ให้ ข้อมูลบางอย่างแก่ตัว ถอดรหัสเกี่ยวกับลักษณะของชิ้นส่วนข้อมูลที่มันไม่รู้จัก

ตัวอักษรตัวแรกของข้อความบ่งบอกว่าส่วนนั้นสำคัญหรือไม่ ถ้าตัวอักษรตัวแรกเป็นตัวพิมพ์ใหญ่ ส่วนนั้นจะสำคัญ แต่ถ้าเป็นตัวพิมพ์เล็ก ส่วนนั้นจะเป็นส่วนเสริม ส่วนที่สำคัญจะมีข้อมูลที่จำเป็นสำหรับการอ่านไฟล์ หากตัวถอดรหัสพบส่วนที่สำคัญที่ไม่รู้จัก จะต้องหยุดการอ่านไฟล์หรือแสดงคำเตือนที่เหมาะสมแก่ผู้ใช้

ตัวอักษรตัวที่สองบ่งบอกว่าส่วนนั้นเป็น "สาธารณะ" (ไม่ว่าจะอยู่ในข้อกำหนดหรือในทะเบียนส่วนสาธารณะเฉพาะกิจ) หรือ "ส่วนตัว" (ไม่ได้กำหนดมาตรฐาน) ตัวพิมพ์ใหญ่หมายถึงสาธารณะ และตัวพิมพ์เล็กหมายถึงส่วนตัว วิธีนี้ช่วยให้มั่นใจได้ว่าชื่อส่วนสาธารณะและส่วนตัวจะไม่ขัดแย้งกัน (ถึงแม้ว่าชื่อส่วนส่วนตัวสองชื่ออาจขัดแย้งกันได้)

ตัวอักษรตัวที่สามต้องเป็นตัวพิมพ์ใหญ่เพื่อให้เป็นไปตามข้อกำหนดของ PNG ส่วนนี้สงวนไว้สำหรับการขยายในอนาคต ตัวถอดรหัสควรจัดการส่วนข้อมูลที่มีตัวอักษรตัวที่สามเป็นตัวพิมพ์เล็กเช่นเดียวกับส่วนข้อมูลอื่นๆ ที่ไม่รู้จัก

ตัวอักษรตัวที่สี่บ่งบอกว่าส่วนนั้นปลอดภัยที่จะคัดลอกโดยโปรแกรมแก้ไขที่ไม่รู้จักตัวอักษรนั้นหรือไม่ ถ้าเป็นตัวพิมพ์เล็ก ส่วนนั้นสามารถคัดลอกได้อย่างปลอดภัยโดยไม่คำนึงถึงขอบเขตของการแก้ไขไฟล์ ถ้าเป็นตัวพิมพ์ใหญ่ จะสามารถคัดลอกได้ก็ต่อเมื่อการแก้ไขไม่ได้กระทบกับส่วนสำคัญใดๆ ของไฟล์

ส่วนสำคัญ

ตัวถอดรหัสจะต้องสามารถตีความส่วนสำคัญๆ เพื่ออ่านและแสดงผลไฟล์ PNG ได้

  • IHDRต้องเป็นส่วนแรก มีความยาว 13 ไบต์ข้อมูล และประกอบด้วย (ตามลำดับนี้) ของรูปภาพ
    • ความกว้าง (4 ไบต์)
    • ความสูง (4 ไบต์)
    • ความลึกของบิต (1 ไบต์, ค่า 1, 2, 4, 8 หรือ 16)
    • ชนิดสี (1 ไบต์, ค่า 0, 2, 3, 4 หรือ 6)
    • วิธีการบีบอัด (1 ไบต์, ค่า 0)
    • วิธีการกรอง (1 ไบต์, ค่า 0)
    • วิธีการสลับเฟรม (1 ไบต์ ค่า 0 "ไม่มีการสลับเฟรม" หรือ 1 " การสลับเฟรม Adam7 ") [ 13 ]

ตามที่ระบุไว้ในWorld Wide Web Consortiumความลึกของบิตถูกกำหนดให้เป็น "จำนวนบิตต่อตัวอย่างหรือต่อดัชนีพาเลท (ไม่ใช่ต่อพิกเซล)" [ 13 ]

  • PLTEประกอบด้วยชุดสี : รายชื่อสีต่างๆ
  • IDATประกอบด้วยรูปภาพ ซึ่งอาจถูกแบ่งออกเป็นส่วนย่อย IDAT หลายส่วน การแบ่งแบบนี้จะเพิ่มขนาดไฟล์เล็กน้อย แต่ทำให้สามารถสร้าง PNG ในลักษณะสตรีมมิ่งได้ ส่วนย่อย IDAT ประกอบด้วยข้อมูลรูปภาพจริง ซึ่งเป็นสตรีมเอาต์พุตของอัลกอริธึมการบีบอัด[ 24 ]
  • IENDทำเครื่องหมายจุดสิ้นสุดของภาพ; ฟิลด์ข้อมูลของส่วน IEND มี 0 ไบต์/ว่างเปล่า[ 25 ]

ส่วน นี้PLTEจำเป็นสำหรับประเภทสีที่ 3 (สีแบบดัชนี) เป็นตัวเลือกสำหรับประเภทสีที่สองและหก (สีจริงและสีจริงที่มีค่าอัลฟา) และต้องไม่ปรากฏสำหรับประเภทสีที่ 0 และ 4 (สีเทาและสีเทาที่มีค่าอัลฟา)

ชิ้นส่วนเสริม

คุณลักษณะภาพอื่นๆ ที่สามารถจัดเก็บในไฟล์ PNG ได้แก่ ค่า แกมมาสีพื้นหลัง และ ข้อมูล เมตา ข้อความ PNG ยังรองรับการจัดการสีผ่านการรวมโปรไฟล์สี ICC [ 26 ]

  • bKGDกำหนดสีพื้นหลังเริ่มต้น มีจุดประสงค์เพื่อใช้ในกรณีที่ไม่มีตัวเลือกที่ดีกว่า เช่น ในโปรแกรมดูภาพแบบสแตนด์อโลน (แต่ไม่ใช่ในเว็บเบราว์เซอร์ ดูรายละเอียดเพิ่มเติมด้านล่าง)
  • cHRMแสดง พิกัด สีของสีหลักและจุดสีขาวของจอแสดงผล
  • cICPระบุพื้นที่สี ฟังก์ชันการถ่ายโอน และสัมประสิทธิ์เมทริกซ์ตามที่กำหนดไว้ใน ITU-T H.273 [ 27 ] มีวัตถุประสงค์เพื่อใช้กับภาพ HDRโดยไม่ต้องใช้โปรไฟล์สี[ 28 ]
  • dSIGใช้สำหรับจัดเก็บลายเซ็นดิจิทัล[ 29 ]
  • eXIfจัดเก็บเมตาเดต้าExif [ 30 ] [ 31 ]
  • gAMAระบุค่าแกมมาส่วนของ gAMA ประกอบด้วยเพียง 4 ไบต์ และค่าของมันแสดงถึงค่าแกมมาคูณด้วย 100,000 ตัวอย่างเช่น ค่าแกมมา 1/3.4 คำนวณได้เป็น 29411.7647059 ((1/3.4)*(100,000)) และถูกแปลงเป็นจำนวนเต็ม (29412) เพื่อจัดเก็บ[ 32 ]
  • hISTสามารถจัดเก็บฮิสโตแกรม หรือปริมาณรวมของแต่ละสีในภาพได้
  • iCCPเป็นโปรไฟล์สี ICC
  • iTXtส่วน นี้ประกอบด้วยคำหลักและ ข้อความ UTF-8พร้อมการเข้ารหัสสำหรับการบีบอัดและการแปลที่เป็นไปได้ ซึ่งระบุไว้ด้วยแท็กภาษาแพลตฟอร์มเมตาเดตาที่ขยายได้ (XMP) ใช้ส่วนนี้ร่วมกับคำหลัก 'XML:com.adobe.xmp'
  • pHYsเก็บขนาดพิกเซลที่ต้องการ (หรืออัตราส่วนภาพพิกเซล) โดย pHY ประกอบด้วย "พิกเซลต่อหน่วย แกน X" (4 ไบต์) "พิกเซลต่อหน่วย แกน Y" (4 ไบต์) และ "ตัวระบุหน่วย" (1 ไบต์) รวมทั้งหมด 9 ไบต์[ 33 ]
  • sBIT(บิตสำคัญ) ระบุความแม่นยำของสีของข้อมูลต้นฉบับ ส่วนนี้ประกอบด้วยไบต์ทั้งหมดระหว่าง 1 ถึง 5 ไบต์ ขึ้นอยู่กับประเภทสี[ 34 ] [ 35 ] [ 36 ]
  • sPLTแนะนำชุดสีที่ควรใช้หากไม่มีสีครบทุกเฉด
  • sRGBระบุว่า ใช้ พื้นที่สี sRGB มาตรฐาน โดยส่วน sRGB ประกอบด้วยไบต์เพียง 1 ไบต์ ซึ่งใช้สำหรับ "ความตั้งใจในการเรนเดอร์" (มีการกำหนดค่า 4 ค่า ได้แก่ 0, 1, 2 และ 3 สำหรับความตั้งใจในการเรนเดอร์) [ 37 ]
  • sTERส่วนตัวบ่งชี้ภาพสเตอริโอสำหรับภาพสเตอริโอสโคปิก[ 38 ]
  • tEXtสามารถจัดเก็บข้อความที่สามารถแสดงได้ตามมาตรฐาน ISO/IEC 8859-1โดยมี คู่ คีย์-ค่า หนึ่ง คู่สำหรับแต่ละส่วน "คีย์" ต้องมีความยาวระหว่าง 1 ถึง 79 ตัวอักษร ตัวคั่นเป็นอักขระว่าง "ค่า" สามารถมีความยาวได้ทุกขนาด ตั้งแต่ศูนย์ไปจนถึงขนาดส่วนสูงสุดที่อนุญาตลบด้วยความยาวของคีย์เวิร์ดและตัวคั่น ทั้ง "คีย์" และ "ค่า" ต้องไม่มีอักขระว่าง และไม่อนุญาตให้มีช่องว่างนำหน้าหรือต่อท้าย
  • tIMEบันทึกเวลาที่ภาพถูกแก้ไขครั้งล่าสุด
  • tRNSประกอบด้วยข้อมูลความโปร่งใส สำหรับภาพแบบดัชนี จะเก็บค่าช่องอัลฟาสำหรับรายการพาเล็ตอย่างน้อยหนึ่งรายการ สำหรับภาพสีจริงและภาพขาวดำ จะเก็บค่าพิกเซลเดียวที่ถือว่าโปร่งใสอย่างสมบูรณ์
  • zTXtประกอบด้วยข้อความที่ถูกบีบอัด (และตัวบ่งชี้วิธีการบีบอัด) โดยมีข้อจำกัดเช่นเดียวกับtEXt.

รูปแบบพิกเซล

อนุญาตให้มีการผสมผสานระหว่างประเภทสีและความลึกของบิต[ 13 ]
ประเภทสี ช่องต่างๆ บิตต่อช่อง
124816
จัดทำดัชนี 1 1248
โทนสีเทา 1 124816
โทนสีเทาและค่าอัลฟ่า 2 1632
สีจริง 3 2448
สีจริงและค่าอัลฟ่า 4 3264

พิกเซลในภาพ PNG คือตัวเลขที่อาจเป็นดัชนีของข้อมูลตัวอย่างในจานสีหรือเป็นข้อมูลตัวอย่างเอง จานสีเป็นตารางแยกต่างหากที่อยู่ในส่วน PLTE ข้อมูลตัวอย่างสำหรับพิกเซล เดียว ประกอบด้วยทูเปิลของตัวเลขระหว่างหนึ่งถึงสี่ตัว ไม่ว่าข้อมูลพิกเซลจะแสดงถึงดัชนีของจานสีหรือค่าตัวอย่างที่ระบุอย่างชัดเจน ตัวเลขเหล่านั้นจะถูกเรียกว่าช่องสัญญาณและตัวเลขทุกตัวในภาพจะถูกเข้ารหัสด้วยรูปแบบเดียวกัน

รูปแบบที่อนุญาตจะเข้ารหัสแต่ละตัวเลขเป็นค่าจำนวนเต็มที่ไม่ติดลบโดยใช้จำนวนบิตคงที่ ซึ่งในข้อกำหนด PNG เรียกว่าความลึกของบิตโปรดสังเกตว่านี่ไม่ใช่ความลึกของสีซึ่งโดยทั่วไปใช้เพื่ออ้างถึงจำนวนบิตทั้งหมดในแต่ละพิกเซล ไม่ใช่แต่ละช่องสัญญาณ ความลึกของบิตที่อนุญาตจะสรุปไว้ในตารางพร้อมกับจำนวนบิตทั้งหมดที่ใช้สำหรับแต่ละพิกเซล

จำนวนช่องสัญญาณขึ้นอยู่กับว่าภาพนั้นเป็นภาพขาวดำหรือภาพสี และมีช่องอัลฟาหรือ ไม่ ไฟล์ PNG อนุญาตให้ใช้การผสมผสานของช่องสัญญาณดังต่อไปนี้ ซึ่งเรียกว่าประเภท สี

0 (000 2 )โทนสีเทา
2 (010 2 )สีแดง สีเขียว และสีน้ำเงิน: rgb/truecolor
3 (011 2 )จัดทำดัชนี: ช่องที่มีดัชนีสำหรับจานสี
4 (100 2 )ระดับสีเทาและค่าอัลฟา: ระดับความทึบแสงของแต่ละพิกเซล
6 (110 2 )สีแดง สีเขียว สีน้ำเงิน และอัลฟ่า

ประเภทสีถูกระบุเป็นค่า 8 บิต แต่ใช้เพียงสามบิตล่างเท่านั้น และถึงกระนั้นก็อนุญาตให้ใช้ได้เพียงห้าชุดค่าผสมที่ระบุไว้ข้างต้นเท่านั้น ตราบใดที่ประเภทสีถูกต้อง ก็สามารถพิจารณาได้ว่าเป็นฟิลด์บิต ดังที่สรุปไว้ในตารางด้านข้าง:

ประเภทสี PNG
ประเภท สีชื่อ ไบนารี หน้ากาก
 เอซีพี
0โทนสีเทา 0000  
2สีจริง 0010 สี
3จัดทำดัชนี 0011 สี, โทนสี
4โทนสีเทาและค่าอัลฟ่า 0100 อัลฟ่า
6สีจริงและค่าอัลฟ่า 0110 อัลฟา, สี
  • ค่าบิตที่ 1: ข้อมูลภาพจะเก็บดัชนีของจานสี ซึ่งจะใช้ได้เฉพาะเมื่อใช้ร่วมกับค่าบิตที่ 2 เท่านั้น
  • ค่าบิต 2: ตัวอย่างภาพประกอบด้วยช่องข้อมูลสามช่องที่เข้ารหัสสีไตรโครมาติก มิเช่นนั้น ตัวอย่างภาพจะประกอบด้วยช่องข้อมูลหนึ่งช่องที่เข้ารหัสความสว่างสัมพัทธ์
  • ค่าบิต 4: ตัวอย่างภาพยังประกอบด้วยช่องอัลฟาซึ่งแสดงเป็นค่าความทึบแสงเชิงเส้นของพิกเซล ค่านี้ใช้ไม่ได้เมื่อใช้ร่วมกับค่าบิต 1

สำหรับภาพสีแบบดัชนี (Indexed Color Images) พาเล็ตจะจัดเก็บสีไตรโครมาติก (Trichromatic Colors) ที่ความลึก 8 บิตต่อช่อง (24 บิตต่อรายการในพาเล็ต) นอกจากนี้ อาจมีรายการค่าอัลฟา (Alpha Value) 8 บิตสำหรับรายการในพาเล็ตเพิ่มเติมได้ หากไม่รวมอยู่ด้วย หรือหากสั้นกว่าจำนวนรายการในพาเล็ต รายการที่เหลือในพาเล็ตจะถือว่าทึบแสง พาเล็ตต้องมีจำนวนรายการไม่เกินความลึกของบิตที่ภาพกำหนด แต่สามารถมีจำนวนน้อยกว่าได้ (ตัวอย่างเช่น หากภาพที่มีพิกเซล 8 บิตใช้เพียง 90 สี ก็ไม่จำเป็นต้องมีรายการในพาเล็ตสำหรับสีทั้งหมด 256 สี) พาเล็ตต้องมีรายการสำหรับค่าพิกเซลทั้งหมดที่มีอยู่ในภาพ

มาตรฐานนี้อนุญาตให้ไฟล์ PNG สีแบบ Indexed มีความละเอียด 1, 2, 4 หรือ 8 บิตต่อพิกเซล ส่วนภาพขาวดำที่ไม่มีช่องอัลฟาอาจมีความละเอียด 1, 2, 4, 8 หรือ 16 บิตต่อพิกเซล สำหรับไฟล์อื่นๆ จะใช้ความละเอียด 8 หรือ 16 บิตต่อช่อง โดยตารางด้านบนแสดงค่าความละเอียดที่อนุญาต มาตรฐานนี้กำหนดให้ตัวถอดรหัสต้องสามารถอ่านรูปแบบสีที่รองรับทั้งหมดได้ แต่โปรแกรมแก้ไขภาพหลายโปรแกรมสามารถสร้างได้เพียงส่วนน้อยของรูปแบบสีเหล่านั้นเท่านั้น

ความโปร่งใสของภาพ

ไฟล์ PNG มีตัวเลือกความโปร่งใสหลากหลายรูปแบบ สำหรับภาพสีจริงและภาพขาวดำ สามารถกำหนดค่าพิกเซลเดียวให้เป็นค่าโปร่งใส หรือ เพิ่ม ช่องอัลฟา (ทำให้สามารถใช้เปอร์เซ็นต์ความโปร่งใสบางส่วนได้) สำหรับภาพแบบใช้จานสี สามารถเพิ่มค่าอัลฟาให้กับรายการในจานสีได้ จำนวนค่าดังกล่าวที่จัดเก็บไว้อาจน้อยกว่าจำนวนรายการในจานสีทั้งหมด ในกรณีนั้น รายการที่เหลือจะถือว่าทึบแสงทั้งหมด

การสแกนค่าพิกเซลเพื่อหาค่าความโปร่งใสแบบไบนารีนั้น ควรดำเนินการก่อนการลดสีใดๆ เพื่อหลีกเลี่ยงไม่ให้พิกเซลโปร่งใสโดยไม่ตั้งใจ ปัญหานี้มีแนวโน้มที่จะเกิดขึ้นกับระบบที่สามารถถอดรหัสภาพ 16 บิตต่อช่องสัญญาณ (ตามข้อกำหนด) แต่ส่งออกเพียง 8 บิตต่อช่องสัญญาณ (ซึ่งเป็นมาตรฐานสำหรับระบบส่วนใหญ่ ยกเว้นระบบระดับสูงสุด)

การจัดเก็บค่าอัลฟาอาจเป็นแบบ "เชื่อมโยง" (" คูณล่วงหน้า ") หรือ "ไม่เชื่อมโยง" แต่มาตรฐาน PNG [ 39 ]ใช้ค่าอัลฟาแบบ "ไม่เชื่อมโยง" ("ไม่คูณล่วงหน้า") ซึ่งหมายความว่าภาพไม่ได้เข้ารหัสด้วย ค่าอัลฟา การปล่อยแสงที่แสดงใน RGB ไม่ใช่การปล่อยแสงในระดับพิกเซล ซึ่งหมายความว่าการดำเนินการโอเวอร์จะคูณการปล่อยแสง RGB ด้วยค่าอัลฟา และไม่สามารถแสดงการปล่อยแสงและการบดบังได้อย่างถูกต้อง

การบีบอัด

PNG ใช้กระบวนการบีบอัดสองขั้นตอน:

  • ก่อนการบีบอัด: การกรอง (การคาดการณ์)
  • การบีบอัด: ลดลมออก

PNG ใช้DEFLATE ซึ่งเป็น อัลกอริธึมการบีบอัดข้อมูลแบบไม่สูญเสีย คุณภาพที่ไม่ได้รับการจด สิทธิบัตร โดยใช้การผสมผสานระหว่าง การเข้ารหัส LZ77และHuffman มีการใช้งาน DEFLATE ที่ได้รับอนุญาตอย่างเสรีเช่นzlibให้เลือกใช้อย่างแพร่หลาย

เมื่อเปรียบเทียบกับรูปแบบไฟล์ที่มีการบีบอัดแบบสูญเสียข้อมูลเช่น JPEG การเลือกการตั้งค่าการบีบอัดที่สูงขึ้นอาจทำให้การประมวลผลช้าลงโดยที่ขนาดไฟล์ไม่ลดลงอย่างมีนัยสำคัญ

การกรอง

วิธีการกรองแบบที่ 0 ของ PNG สามารถใช้ข้อมูลในพิกเซล A, B และ C เพื่อทำนายค่าของ X ได้
ไฟล์ PNG ที่มี 256 สี มีขนาดเพียง 251 ไบต์หลังจากการประมวลผลเบื้องต้นแล้ว หากแปลงภาพเดียวกันเป็นไฟล์ GIF จะมีขนาดใหญ่กว่าถึงสิบสามเท่า

ก่อนที่จะใช้ DEFLATE ข้อมูลจะถูกแปลงผ่านวิธีการทำนาย: จะใช้วิธีการกรอง แบบเดียวสำหรับภาพทั้งหมด ในขณะที่สำหรับแต่ละบรรทัดของภาพ จะมีการเลือก ประเภทตัวกรองเพื่อแปลงข้อมูลให้สามารถบีบอัดได้อย่างมีประสิทธิภาพมากขึ้น[ 40 ]ประเภทตัวกรองที่ใช้สำหรับสแกนไลน์จะถูกเพิ่มไว้ข้างหน้าสแกนไลน์เพื่อเปิดใช้งานการคลายการบีบอัดแบบอินไลน์

ในข้อกำหนด PNG ปัจจุบันมีวิธีการกรองเพียงวิธีเดียว (เรียกว่าวิธีที่ 0) ดังนั้นในทางปฏิบัติจึงมีเพียงตัวเลือกเดียวคือการเลือกประเภทของตัวกรองที่จะใช้กับแต่ละบรรทัด สำหรับวิธีนี้ ตัวกรองจะทำนายค่าของแต่ละพิกเซลโดยอิงจากค่าของพิกเซลข้างเคียงก่อนหน้า และลบสีที่ทำนายได้ของพิกเซลออกจากค่าจริง เช่นเดียวกับในDPCMบรรทัดภาพที่ผ่านการกรองด้วยวิธีนี้มักจะบีบอัดได้ดีกว่าบรรทัดภาพดิบ โดยเฉพาะอย่างยิ่งหากคล้ายกับบรรทัดด้านบน เนื่องจากความแตกต่างจากการทำนายโดยทั่วไปจะกระจุกตัวอยู่รอบๆ 0 แทนที่จะกระจายไปทั่วค่าภาพที่เป็นไปได้ทั้งหมด นี่เป็นสิ่งสำคัญอย่างยิ่งในการเชื่อมโยงแถวที่แยกจากกัน เนื่องจาก DEFLATE ไม่เข้าใจว่าภาพเป็นเอนทิตี 2 มิติ แต่เห็นข้อมูลภาพเป็นเพียงกระแสของไบต์

มีตัวกรองห้าประเภทสำหรับวิธีการกรอง 0 แต่ละประเภทจะทำนายค่าของแต่ละไบต์ (ของข้อมูลภาพก่อนการกรอง) โดยอิงจากไบต์ที่สอดคล้องกันของพิกเซลทางซ้าย ( A ) พิกเซลด้านบน ( B ) และพิกเซลด้านบนและทางซ้าย ( C ) หรือการรวมกันของพิกเซลเหล่านั้น และเข้ารหัสความแตกต่างระหว่างค่าที่ทำนายกับค่าจริง ตัวกรองจะถูกนำไปใช้กับค่าไบต์ ไม่ใช่พิกเซล ค่าพิกเซลอาจมีหนึ่งหรือสองไบต์ หรือหลายค่าต่อไบต์ แต่จะไม่ข้ามขอบเขตไบต์ ประเภทของตัวกรองมีดังนี้: [ 41 ]

ประเภทไบต์ชื่อตัวกรองค่าที่คาดการณ์
0ไม่มีศูนย์ (เพื่อให้ค่าไบต์ดิบส่งผ่านโดยไม่เปลี่ยนแปลง)
1ซับไบต์A (ทางซ้าย)
2ขึ้นไบต์B (ด้านบน)
3เฉลี่ยค่าเฉลี่ยของไบต์AและBปัดลง
4ปาเอธA , BหรือCแล้วแต่ว่าค่าใดใกล้เคียงกับp = A + BC มากที่สุด

ตัวกรอง Paeth อิงตามอัลกอริทึมของAlan W. Paeth [ 42 ] เปรียบเทียบ กับเวอร์ชันของDPCMที่ใช้ในJPEG แบบไม่สูญเสียข้อมูลและกับการแปลงเวฟเล็ตแบบไม่ต่อเนื่องโดยใช้หน้าต่าง 1 × 2, 2 × 1 หรือ (สำหรับตัวทำนาย Paeth) 2 × 2 และ เวฟเล็ ต Haar

การบีบอัดได้รับการปรับปรุงเพิ่มเติมโดยการเลือกประเภทตัวกรองแบบปรับเปลี่ยนตามบรรทัดต่อบรรทัด การปรับปรุงนี้และวิธีการเชิงฮิวริสติกในการใช้งานซึ่งมักใช้ในซอฟต์แวร์การเขียน PNG ได้รับการสร้างขึ้นโดยLee Daniel Crockerซึ่งได้ทดสอบวิธีการดังกล่าวกับรูปภาพจำนวนมากในระหว่างการสร้างรูปแบบ[ 43 ]การเลือกตัวกรองเป็นส่วนประกอบของการเพิ่มประสิทธิภาพขนาดไฟล์ ดังที่กล่าวไว้ด้านล่าง

หากใช้การสลับเฟรมภาพ (interlacing) แต่ละขั้นตอนของการสลับเฟรมภาพจะถูกกรองแยกกัน ซึ่งหมายความว่าภาพสามารถแสดงผลได้ทีละขั้นตอนเมื่อได้รับแต่ละขั้นตอน อย่างไรก็ตาม โดยทั่วไปแล้วการสลับเฟรมภาพจะทำให้การบีบอัดมีประสิทธิภาพลดลง

การสอดประสาน

ภาพประกอบแสดงการสลับภาพ Adam7 บนภาพขนาด 16×16 พิกเซล

PNG เสนอ รูปแบบการสลับภาพ แบบ 2 มิติ 7 รอบ ซึ่งก็คือ อัลกอริทึม Adam7 ซึ่งมีความซับซ้อนกว่ารูปแบบ 1 มิติ 4 รอบของ GIF และช่วยให้มองเห็นภาพความละเอียดต่ำได้ชัดเจนขึ้นในช่วงแรกของการถ่ายโอน โดยเฉพาะอย่างยิ่งหาก ใช้อัลกอริทึมการแทรกสอด เช่นการแทรกสอดแบบไบคิวบิก[ 44 ]

อย่างไรก็ตาม รูปแบบการประมวลผลแบบ 7 ขั้นตอนมีแนวโน้มที่จะลดความสามารถในการบีบอัดข้อมูลมากกว่ารูปแบบที่เรียบง่ายกว่า

แอนิเมชั่น

ไฟล์ APNG (ภาพ PNG แบบเคลื่อนไหว) (แสดงผลเป็นภาพนิ่งในบางเว็บเบราว์เซอร์ )

รูปแบบไฟล์ PNG พื้นฐานไม่รองรับภาพเคลื่อนไหวMNGเป็นส่วนขยายของ PNG ที่รองรับภาพเคลื่อนไหว โดยได้รับการออกแบบโดยสมาชิกของกลุ่ม PNG MNG มีโครงสร้างและส่วนย่อยพื้นฐานคล้ายกับ PNG แต่มีความซับซ้อนกว่ามากและมีลายเซ็นไฟล์ที่แตกต่างกัน ซึ่งทำให้ไม่สามารถใช้งานร่วมกับตัวถอดรหัส PNG มาตรฐานได้โดยอัตโนมัติ นั่นหมายความว่าเว็บเบราว์เซอร์และแอปพลิเคชันส่วนใหญ่ไม่เคยรองรับ MNG หรือได้ยกเลิกการสนับสนุนไปแล้ว

ความซับซ้อนของ MNG นำไปสู่การเสนอAPNGโดยนักพัฒนาที่ Mozilla Foundation ซึ่งมีพื้นฐานมาจาก PNG รองรับแอนิเมชัน และเรียบง่ายกว่า MNG APNG ยังมีตัวเลือกสำรองสำหรับการแสดงผลภาพเดียวสำหรับตัวถอดรหัส PNG ที่ไม่รองรับ APNG ปัจจุบัน รูปแบบ APNG ได้รับการสนับสนุนโดยเว็บเบราว์เซอร์หลักทั้งหมด[ 45 ] APNG ได้รับการสนับสนุนในFirefox 3.0 ขึ้นไป, Pale Moon (ทุกเวอร์ชัน) และSafari 8.0 ขึ้นไป[ 46 ] Chromium 59.0 เพิ่มการสนับสนุน APNG [ 47 ] [ 48 ]ตามมาด้วย Google Chrome Operaรองรับ APNG ในเวอร์ชัน 10–12.1 แต่การสนับสนุนหยุดลงในเวอร์ชัน 15 เมื่อเปลี่ยนไปใช้ เอ็นจิ้นการเรนเดอร์ Blinkการสนับสนุนถูกเพิ่มกลับเข้ามาใน Opera 46 (สืบทอดมาจาก Chromium 59) [ 49 ] Microsoft Edgeรองรับ APNG ตั้งแต่เวอร์ชัน 79.0 เมื่อเปลี่ยนไปใช้เอ็นจิ้นที่ใช้ Chromium

กลุ่ม PNG ตัดสินใจในเดือนเมษายน พ.ศ. 2550 ว่าจะไม่ยอมรับ APNG [ 50 ]มีการหารือถึงทางเลือกอื่น ๆ หลายประการ รวมถึง ANG, aNIM/mPNG, "PNG ใน GIF" และชุดย่อย "RGBA ใน GIF" [ 51 ]อย่างไรก็ตาม ปัจจุบันมีเพียง APNG เท่านั้นที่ได้รับการสนับสนุนอย่างกว้างขวาง

ด้วยการเผยแพร่ข้อกำหนด PNG ฉบับที่ 3 ในเดือนมิถุนายน พ.ศ. 2568 ซึ่งปัจจุบันได้รับการดูแลโดยกลุ่มทำงาน PNG [ 16 ]ในที่สุด APNG ก็ถูกรวมเข้าไว้ในข้อกำหนดในฐานะส่วนขยาย[ 52 ]

ตัวอย่าง

โครงสร้างของไฟล์ PNG ที่เรียบง่ายมาก
89 50 4E 47 0D 0A 1A 0Aลายเซ็น PNG IHDRส่วนหัวของรูปภาพ IDATข้อมูลภาพ IENDภาพสิ้นสุด
เนื้อหาของไฟล์ PNG ขนาดเล็กที่แสดงถึงพิกเซลสีแดงหนึ่งพิกเซล
เฮกซ์ ในฐานะตัวละคร

89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 00 00 00 01 00 00 00 01 08 02 00 00 00 90 77 53 DE 00 00 00 0C 49 44 41 54 08 D7 63 F8 CF C0 00 00 03 01 01 00 18 DD 8D B0 00 00 00 00 49 45 4E 44 TH 42 60 82

.PNG.... ....IHDR ............. wS ....IDAT..c.... ......... ....IEN D.B`.

IHDR Chunk
เลื่อนเข้าไปในส่วนนั้น ค่าเลขฐานสิบหก ค่าทศนิยม ข้อความ ความหมาย
0 0x0D 13 ส่วนของข้อมูล IHDR มีเนื้อหา 13 ไบต์
4 0x49484452 ไอเอชดีอาร์ ระบุส่วนหัว (Header chunk)
8 0x01 1 ภาพมีความกว้าง 1 พิกเซล
12 0x01 1 ภาพมีความสูง 1 พิกเซล
16 0x08 8 8 บิตต่อพิกเซล (ต่อช่องสัญญาณ)
17 0x02 2 ประเภทสี 2 (RGB/สีจริง)
18 0x00 0 วิธีการบีบอัดข้อมูลแบบที่ 0 (ค่าเดียวที่ยอมรับได้)
19 0x00 0 วิธีการกรองแบบที่ 0 (ค่าที่ยอมรับได้เพียงค่าเดียว)
20 0x00 0 ไม่สลับกัน
21 0x907753DE ค่า CRC ของประเภทและเนื้อหาของส่วนข้อมูล (แต่ไม่ใช่ความยาว)
IDAT Chunk
เลื่อนเข้าไปในส่วนนั้น ค่าเลขฐานสิบหก ความหมาย
0 0x0C ส่วนของข้อมูล IDAT มีเนื้อหา 12 ไบต์
4 0x49444154 ระบุกลุ่มข้อมูล
8 0x08 วิธีการบีบอัด DEFLATE โดยใช้หน้าต่างขนาด 256 ไบต์[ 53 ]
9 0xD7 ค่า ZLIB FCHECK ไม่ได้ใช้พจนานุกรม อัลกอริทึมการบีบอัดสูงสุด[ 53 ]
10 0x63F8CFC00000 บล็อก DEFLATE ที่บีบอัดโดยใช้รหัส Huffman แบบคงที่ซึ่งถอดรหัสเป็น 0x00 0xFF 0x00 0x00 [ 54 ]
16 0x03010100 ค่าตรวจสอบ ZLIB: ผลรวมตรวจสอบ Adler-32ของข้อมูลที่ไม่ได้บีบอัด[ 53 ]
20 0x18DD8DB0 ค่า CRC ของประเภทและเนื้อหาของส่วนข้อมูล (แต่ไม่ใช่ความยาว)

แสดงผลในลักษณะเดียวกับโปรแกรมแก้ไขเลขฐานสิบหกโดยด้านซ้ายแสดงค่าไบต์ในรูปแบบเลขฐานสิบหกและด้านขวาแสดงอักขระที่เทียบเท่าจากมาตรฐาน ISO-8859-1โดยอักขระที่ไม่รู้จักและอักขระควบคุมจะถูกแทนที่ด้วยจุด ตำแหน่งออฟเซ็ตที่ 8 และ 9 ของส่วนข้อมูล IDAT แสดงส่วนหัว 2 ไบต์ที่จำเป็นของรูปแบบข้อมูล zlib ตำแหน่งออฟเซ็ตที่ 16 (ของส่วนข้อมูลเดียวกัน) แสดงส่วนท้าย 4 ไบต์ที่จำเป็นของรูปแบบเดียวกัน นอกจากนี้ ลายเซ็น PNG และส่วนข้อมูลแต่ละส่วนจะถูกทำเครื่องหมายด้วยสี โปรดสังเกตว่าสามารถระบุได้ง่ายเนื่องจากชื่อประเภทที่อ่านง่าย (ในตัวอย่างนี้คือ PNG, IHDR, IDAT และ IEND)

ข้อดี

เหตุผลที่ควรใช้ PNG:

  • ความคล่องตัว : การส่งข้อมูลเป็นอิสระจากแพลตฟอร์มซอฟต์แวร์และฮาร์ดแวร์
  • ความสมบูรณ์ : สามารถแสดงภาพสีจริง ภาพสีแบบดัชนี และภาพขาวดำได้
  • การเข้ารหัสและถอดรหัสแบบอนุกรม : ช่วยให้ผู้ใช้สามารถสร้างและอ่านสตรีมข้อมูลแบบอนุกรมได้ กล่าวคือ รูปแบบของสตรีมข้อมูลจะถูกนำมาใช้สำหรับการสร้างและการแสดงภาพในขณะนั้นผ่านการสื่อสารแบบอนุกรม
  • การนำเสนอแบบค่อยเป็นค่อยไป : เพื่อให้สามารถส่งข้อมูลที่เริ่มต้นด้วยการประมาณภาพทั้งหมด และค่อยๆ ปรับปรุงคุณภาพขึ้นเรื่อยๆ เมื่อได้รับข้อมูลเข้ามา
  • ความสามารถในการตรวจจับข้อผิดพลาดในการส่งข้อมูล : ตรวจจับข้อผิดพลาดในการส่งข้อมูลได้อย่างถูกต้อง
  • การบีบอัดแบบไม่สูญเสียข้อมูล : ไม่มีการสูญเสียข้อมูลใดๆ: การกรองและการบีบอัดจะรักษาข้อมูลทั้งหมดไว้
  • ประสิทธิภาพ : การนำเสนอภาพ การบีบอัด และการกรองภาพแบบก้าวหน้าใดๆ ก็ตาม ล้วนต้องการการถอดรหัสและการแสดงผลที่มีประสิทธิภาพ
  • การบีบอัด : สามารถบีบอัดรูปภาพได้อย่างมีประสิทธิภาพและสม่ำเสมอ
  • ความง่าย : การนำมาตรฐานไปใช้นั้นง่าย
  • ความสามารถในการใช้งานทดแทนกันได้ : ตัวถอดรหัส PNG ใดๆ ที่เป็นไปตามมาตรฐานสามารถอ่านสตรีมข้อมูล PNG ทั้งหมดได้
  • ความยืดหยุ่น : ช่วยให้สามารถต่อเติมและเพิ่มเติมส่วนต่างๆ ในอนาคตได้โดยไม่กระทบกับส่วนก่อนหน้า
  • ปราศจากข้อจำกัดทางกฎหมาย : อัลกอริทึมที่ใช้เป็นอิสระและสามารถเข้าถึงได้

เมื่อเปรียบเทียบกับรูปแบบไฟล์อื่นๆ

รูปแบบไฟล์แลกเปลี่ยนกราฟิก (GIF)

  • สำหรับภาพขนาดเล็กไฟล์ GIFสามารถบีบอัดได้มากกว่าไฟล์ PNG (ดูรายละเอียดในส่วนขนาดไฟล์ด้านล่าง)
  • โดยทั่วไปแล้ว ไฟล์ GIF จะมีขนาดใหญ่กว่าไฟล์ PNG ที่มีการจัดทำดัชนี ยกเว้นกรณีข้างต้น
  • ไฟล์ PNG มีตัวเลือกความโปร่งใสที่หลากหลายกว่าไฟล์ GIF รวมถึงความโปร่งใสแบบอัลฟาแชนเนล ด้วย
  • ในขณะที่ GIF มีข้อจำกัดอยู่ที่ สีดัชนี 8 บิตแต่ PNG ให้ช่วงความลึกของสีที่กว้างกว่ามาก รวมถึงสีจริง 24 บิต (8 บิตต่อช่อง) และ 48 บิต (16 บิตต่อช่อง) ทำให้มีความแม่นยำของสีมากขึ้น การเฟดที่ราบรื่นยิ่งขึ้น ฯลฯ[ 55 ]เมื่อเพิ่มช่องอัลฟา จะสามารถใช้ได้ถึง 64 บิตต่อพิกเซล (ก่อนการบีบอัด)
  • เมื่อแปลงภาพจากรูปแบบ PNG เป็น GIF คุณภาพของภาพอาจลดลงเนื่องจากปรากฏการณ์โปสเตอร์ไนซ์หากภาพ PNG มีสีมากกว่า 256 สี
  • ไฟล์ GIF รองรับภาพเคลื่อนไหวได้โดยตรง ส่วนไฟล์ PNG รองรับภาพเคลื่อนไหวได้เฉพาะผ่านส่วนขยายเท่านั้น (ดูรายละเอียดในส่วนเกี่ยวกับภาพเคลื่อนไหวข้างต้น)

รูปภาพ PNG ไม่ได้รับการสนับสนุนอย่างกว้างขวางจากเบราว์เซอร์รุ่นเก่า โดยเฉพาะอย่างยิ่ง IE6 มีการสนับสนุน PNG อย่างจำกัด[ 56 ]

เจพีเอ

ภาพประกอบเปรียบเทียบการบีบอัดแบบสูญเสียข้อมูลใน JPEG กับการบีบอัดแบบไม่สูญเสียข้อมูลใน PNG: สามารถมองเห็นสิ่งผิดปกติจาก JPEG ได้อย่างชัดเจนในพื้นหลังของข้อมูลภาพประเภทนี้ ในขณะที่ภาพ PNG มีสีพื้นทึบ

รูป แบบไฟล์ JPEG (Joint Photographic Experts Group) สามารถสร้างไฟล์ที่มีขนาดเล็กกว่า PNG สำหรับภาพถ่าย (และภาพที่คล้ายภาพถ่าย) เนื่องจาก JPEG ใช้การเข้ารหัสแบบสูญเสียข้อมูลซึ่งออกแบบมาโดยเฉพาะสำหรับข้อมูลภาพถ่าย ซึ่งโดยทั่วไปแล้วจะมีลักษณะเด่นคือการเปลี่ยนผ่านที่นุ่มนวล ความคมชัดต่ำ และมีสัญญาณรบกวนหรือโครงสร้างที่ไม่สม่ำเสมออื่นๆ การใช้ PNG แทน JPEG คุณภาพสูงสำหรับภาพดังกล่าวจะทำให้ขนาดไฟล์เพิ่มขึ้นอย่างมากโดยที่ คุณภาพเพิ่มขึ้น เพียงเล็กน้อยในทางกลับกัน เมื่อจัดเก็บภาพที่มีข้อความ ภาพวาดเส้น หรือกราฟิก ซึ่งเป็นภาพที่มีการเปลี่ยนแปลงที่คมชัดและพื้นที่สีทึบขนาดใหญ่ รูปแบบ PNG สามารถบีบอัดข้อมูลภาพได้มากกว่า JPEG นอกจากนี้ PNG ยังเป็นการเข้ารหัสแบบไม่สูญเสียข้อมูล ในขณะที่ JPEG จะสร้างสิ่งผิดปกติทางสายตาในบริเวณที่มีความคมชัดสูง (สิ่งผิดปกติเหล่านี้ขึ้นอยู่กับการตั้งค่าที่ใช้ในการบีบอัด JPG และอาจสังเกตเห็นได้ชัดเจนเมื่อใช้การตั้งค่าคุณภาพต่ำ [การบีบอัดสูง]) ในกรณีที่ภาพมีทั้งการเปลี่ยนผ่านที่คมชัดและส่วนที่เป็นภาพถ่าย จะต้องเลือกอย่างใดอย่างหนึ่งระหว่างสองเอฟเฟกต์นี้ JPEG ไม่รองรับความโปร่งใส

การบีอัดแบบสูญเสียข้อมูลของ JPEG ยังประสบปัญหาการสูญเสียคุณภาพในแต่ละรุ่นซึ่งการถอดรหัสและเข้ารหัสภาพซ้ำๆ เพื่อบันทึกอีกครั้งจะทำให้ข้อมูลสูญหายในแต่ละครั้ง ส่งผลให้คุณภาพของภาพลดลง เนื่องจาก PNG ไม่มีการบีอัดข้อมูล จึงเหมาะสำหรับการจัดเก็บภาพเพื่อนำไปแก้ไข แม้ว่า PNG จะมีประสิทธิภาพพอสมควรในการบีอัดภาพถ่าย แต่ก็มีรูปแบบการบีอัดแบบไม่สูญเสียข้อมูลที่ออกแบบมาโดยเฉพาะสำหรับภาพถ่าย เช่นWebP แบบ ไม่สูญเสียข้อมูล และAdobe DNG (digital negative) อย่างไรก็ตาม รูปแบบเหล่านี้ไม่ได้รับการสนับสนุนอย่างกว้างขวาง หรือเป็นรูปแบบที่เป็นกรรมสิทธิ์ สามารถจัดเก็บภาพแบบไม่สูญเสียข้อมูลและแปลงเป็นรูปแบบ JPEG เฉพาะสำหรับการเผยแพร่เท่านั้น เพื่อไม่ให้เกิดการสูญเสียคุณภาพในแต่ละรุ่น

แม้ว่าข้อกำหนด PNG จะไม่ได้ระบุมาตรฐานสำหรับการฝัง ข้อมูลภาพ Exifจากแหล่งที่มา เช่น กล้องดิจิทัลไว้อย่างชัดเจน แต่วิธีที่นิยมใช้ในการฝังข้อมูล EXIF ​​ใน PNG คือการใช้ป้ายกำกับส่วนเสริมที่ไม่eXIfสำคัญ[ 57 ]

เว็บเบราว์เซอร์ยุคแรกๆ ไม่รองรับภาพ PNG รูปแบบภาพหลักๆ จึงใช้ JPEG และ GIF JPEG นิยมใช้ในการส่งออกภาพที่มีการไล่ระดับสีสำหรับเว็บเพจ เนื่องจาก GIF มีความลึกของสีที่จำกัด อย่างไรก็ตาม การบีบอัด JPEG ทำให้การไล่ระดับสีเบลอเล็กน้อย รูปแบบ PNG สามารถสร้างการไล่ระดับสีได้อย่างแม่นยำที่สุดเท่าที่จะเป็นไปได้สำหรับความลึกของบิตที่กำหนด ในขณะที่ยังคงขนาดไฟล์ให้เล็ก PNG จึงกลายเป็นตัวเลือกที่ดีที่สุดสำหรับภาพไล่ระดับสีขนาดเล็กเมื่อเว็บเบราว์เซอร์รองรับรูปแบบนี้ดีขึ้น ในเบราว์เซอร์สมัยใหม่ ไม่จำเป็นต้องใช้ภาพใดๆ ในการแสดงการไล่ระดับสี เนื่องจากสามารถสร้างการไล่ระดับสีได้โดยใช้ CSS

เจพีอี-แอลเอส

JPEG-LSเป็นรูปแบบภาพโดยJoint Photographic Experts Groupแม้ว่าจะเป็นที่รู้จักและได้รับการสนับสนุนน้อยกว่ารูปแบบ JPEG แบบสูญเสียข้อมูลอื่นๆ ที่กล่าวถึงข้างต้นก็ตาม สามารถเปรียบเทียบได้โดยตรงกับ PNG และมีชุดภาพทดสอบมาตรฐาน[ 58 ]บน Waterloo Repertoire ColorSet ซึ่งเป็นชุดภาพทดสอบมาตรฐาน (ไม่เกี่ยวข้องกับชุดทดสอบความสอดคล้องของ JPEG-LS) โดยทั่วไป JPEG-LS ทำงานได้ดีกว่า PNG ประมาณ 10–15% แต่ในบางภาพ PNG ทำงานได้ดีกว่าอย่างมาก ประมาณ 50–75% [ 59 ]ดังนั้น หากทั้งสองรูปแบบนี้เป็นตัวเลือกและขนาดไฟล์เป็นเกณฑ์สำคัญ ควรพิจารณาทั้งสองรูปแบบ ขึ้นอยู่กับภาพ

JPEG XL

JPEG XLเป็นรูปแบบที่ได้รับการปรับปรุงอย่างมาก ทั้งแบบไม่สูญเสียข้อมูลและแบบสูญเสียข้อมูล ซึ่งได้รับการสนับสนุนน้อยกว่ามาก พัฒนาขึ้นเพื่อทดแทนรูปแบบที่ไม่สูญเสียข้อมูล เช่น PNG [ 60 ] JPEG XL มีขนาดเล็กกว่า JPEG มากกว่า 50% และสามารถทำได้ในขณะที่ไม่สูญเสียข้อมูล ดังนั้นจึงมีขนาดเล็กกว่า PNG อีกด้วย[ 61 ]นอกจากนี้ยังรองรับช่วงไดนามิกสูงขอบเขตสีที่กว้างและความลึกของสี ขนาดใหญ่ [ 62 ] JPEG XL ยังมีประสิทธิภาพมากในการถอดรหัส และให้การเปลี่ยนผ่านที่ราบรื่นจากรูปแบบที่ตั้งใจจะแทนที่ สามารถแปลงจาก JPEG ได้โดยไม่สูญเสียข้อมูล นอกจากนี้ยังโดดเด่นในการบีบอัดโดยไม่ลดทอนความถูกต้อง[ 63 ]

TIFF

ไฟล์ภาพ TIFF ( Tag Image File Format ) เป็นรูปแบบไฟล์ที่รวมเอาตัวเลือกมากมายมหาศาลไว้ด้วยกัน แม้ว่านี่จะทำให้ TIFF มีประโยชน์ในฐานะรูปแบบทั่วไปสำหรับการแลกเปลี่ยนข้อมูลระหว่างโปรแกรมแก้ไขภาพระดับมืออาชีพ แต่ก็ทำให้การเพิ่มการรองรับ TIFF ในโปรแกรมต่างๆ เป็นงานที่ใหญ่กว่ามาก ดังนั้นจึงมีการรองรับ TIFF น้อยมากในโปรแกรมที่ไม่เกี่ยวข้องกับการจัดการภาพ (เช่น เว็บเบราว์เซอร์) ระดับความสามารถในการขยายที่สูงยังหมายความว่าแอปพลิเคชันส่วนใหญ่ให้คุณสมบัติเพียงบางส่วนเท่านั้น ซึ่งอาจทำให้ผู้ใช้สับสนและเกิดปัญหาด้านความเข้ากันได้

อัลกอริทึมการบีบอัดแบบไม่สูญเสียข้อมูลที่ใช้กันทั่วไปกับไฟล์ TIFF คือLempel–Ziv–Welch (LZW) เทคนิคการบีบอัดนี้ซึ่งใช้ในไฟล์ GIF ด้วยนั้น ได้รับการคุ้มครองโดยสิทธิบัตรจนถึงปี 2546 นอกจากนี้ TIFF ยังรองรับอัลกอริทึมการบีบอัดที่ PNG ใช้ (เช่นCompression Tag 0008 16 ' Adobe -style') โดยมีการใช้งานและการสนับสนุนจากแอปพลิเคชันในระดับปานกลาง TIFF ยังมีอัลกอริทึมการบีบอัดแบบไม่สูญเสียข้อมูลเฉพาะทาง เช่นCCITT Group IVซึ่งสามารถบีบอัดภาพสองระดับ (เช่น แฟกซ์หรือข้อความขาวดำ) ได้ดีกว่าอัลกอริทึมการบีบอัดของ PNG

PNG รองรับเฉพาะอัลฟาที่ไม่คูณล่วงหน้าเท่านั้น[ 39 ]ในขณะที่ TIFF ยังรองรับอัลฟาแบบ "เชื่อมโยง" (คูณล่วงหน้า) ด้วย

เว็บพี

WebPเป็นรูปแบบ ที่ Google คิดค้นขึ้น เพื่อทดแทน PNG, JPEG และ GIF [ 64 ]ไฟล์ WebP อนุญาตให้บีบอัดได้ทั้งแบบสูญเสียข้อมูลและไม่สูญเสียข้อมูล ในขณะที่ PNG อนุญาตให้บีบอัดแบบไม่สูญเสียข้อมูลเท่านั้น นอกจากนี้ WebP ยังรองรับแอนิเมชัน ซึ่งเป็นสิ่งที่ ไฟล์ GIF เท่านั้น ที่ทำได้ก่อนหน้านี้[ 65 ]

อย่างไรก็ตาม ข้อดีหลักของ WebP เมื่อเทียบกับ PNG คือการลดขนาดไฟล์ลงอย่างมาก ส่งผลให้เวลาในการโหลดเร็วขึ้นเมื่อฝังลงในเว็บไซต์ Google อ้างว่าภาพ WebP ที่ไม่มีการสูญเสียมีขนาดเล็กกว่าไฟล์ PNG ถึง 26% [ 66 ]

WebP ได้รับการวิพากษ์วิจารณ์ว่าไม่เข้ากันกับโปรแกรมแก้ไขรูปภาพและเว็บไซต์โซเชียลมีเดียต่างๆ ซึ่งแตกต่างจาก PNG [ 67 ]นอกจากนี้ WebP ยังไม่ได้รับการสนับสนุนในเว็บเบราว์เซอร์ทุกตัว ซึ่งอาจทำให้ผู้ให้บริการเว็บรูปภาพต้องสร้างรูปภาพสำรองเพื่อแสดงให้ผู้ใช้เห็น ซึ่งจะทำให้การประหยัดพื้นที่จัดเก็บข้อมูลของ WebP หมดไป[ 65 ]

เอวีเอฟ

AVIFเป็นรูปแบบภาพที่พัฒนาโดยAlliance for Open Media AVIF ได้รับการ ออกแบบโดยมูลนิธิเพื่อชดเชยข้อบกพร่องของตัวแปลงสัญญาณภาพอื่นๆ รวมถึง PNG, GIFและWebP [ 68 ]

โดยทั่วไป AVIF มีขนาดเล็กกว่าทั้ง WebP และ PNG [ 69 ] AVIF รองรับแอนิเมชัน ในขณะที่ PNG ก่อนหน้านี้ไม่รองรับ[ 70 ]

อย่างไรก็ตาม เช่นเดียวกับ WebP, AVIF รองรับแอปพลิเคชันน้อยกว่า PNG [ 70 ]

การสนับสนุนซอฟต์แวร์

ไลบรารีการเขียนโปรแกรมlibpngเป็น ไลบรารี อ้างอิงอย่างเป็นทางการของรูปแบบ PNG [ 71 ] ไลบรารี นี้เผยแพร่เป็นซอฟต์แวร์ฟรีภายใต้เงื่อนไขของใบอนุญาตซอฟต์แวร์ฟรีแบบอนุญาตดังนั้นจึงมักพบเป็นไลบรารีระบบที่สำคัญในระบบปฏิบัติการฟรี

โปรแกรมแก้ไขภาพบิตแมปรองรับไฟล์ PNG

ไฟล์ PNG ได้รับการสนับสนุนอย่างกว้างขวางจากโปรแกรมกราฟิกต่างๆ รวมถึงAdobe Photoshop , Corel Photo-PaintและPaint Shop Pro , GIMP , GraphicConverter , Helicon Filter , ImageMagick , Inkscape , IrfanView , Pixel image editor, Paint.NETและXara Photo & Graphic Designer และอื่น อีกมากมาย (รวมถึงแพลตฟอร์มออกแบบกราฟิกออนไลน์ เช่นCanva ) บางโปรแกรมที่มาพร้อมกับระบบปฏิบัติการ ยอดนิยม ที่รองรับ PNG ได้แก่Microsoft Paint และApple Photos / iPhotoและPreview นอกจาก นี้GIMP มักจะถูกรวมอยู่ในระบบปฏิบัติการ Linux ยอดนิยมด้วยเช่นกัน

Adobe Fireworks (เดิมเป็นของMacromedia ) ใช้ PNG เป็นรูปแบบไฟล์ดั้งเดิม ทำให้โปรแกรมแก้ไขรูปภาพและยูทิลิตี้แสดงตัวอย่างอื่นๆ สามารถดูรูปภาพแบบแบนได้ อย่างไรก็ตาม โดยค่าเริ่มต้น Fireworks ยังจัดเก็บข้อมูลเมตาสำหรับเลเยอร์ แอนิเมชัน ข้อมูลเวกเตอร์ ข้อความ และเอฟเฟกต์ ไฟล์ดังกล่าวไม่ควรเผยแพร่โดยตรง Fireworks สามารถส่งออกรูปภาพเป็น PNG ที่ปรับให้เหมาะสมโดยไม่มีข้อมูลเมตาเพิ่มเติมเพื่อใช้ในเว็บเพจ ฯลฯ แทนได้[ 72 ]

การรองรับไฟล์ PNG ของเว็บเบราว์เซอร์

การรองรับ PNG ปรากฏครั้งแรกในปี พ.ศ. 2540 ในInternet Explorer 4.0b1 (32 บิตสำหรับ NT เท่านั้น) และในNetscape 4.04 [ 73 ]

แม้จะมีการเรียกร้องจากมูลนิธิซอฟต์แวร์เสรี[ 74 ]และสมาคมเว็บทั่วโลก (W3C) [ 75 ]เครื่องมือต่างๆ เช่น gif2png [ 76 ]และแคมเปญต่างๆ เช่น Burn All GIFs [ 77 ]การนำ PNG มาใช้บนเว็บไซต์ก็ค่อนข้างช้าเนื่องจากการสนับสนุนที่ล่าช้าและมีข้อบกพร่องใน Internet Explorer โดยเฉพาะอย่างยิ่งเกี่ยวกับความโปร่งใส[ 78 ] PNG เป็นรูปแบบไฟล์ภาพที่ใช้มากที่สุดบนเว็บตั้งแต่ปี 2018 [ 79 ]

เบราว์เซอร์ที่รองรับไฟล์ PNG ได้แก่ Apple Safari , Google Chrome , Mozilla Firefox , Opera , Camino , Internet Explorer , Microsoft Edgeและอื่นๆ อีกมากมาย สำหรับการเปรียบเทียบโดยละเอียด โปรดดูที่ การเปรียบเทียบเบราว์เซอร์ (การรองรับรูปแบบภาพ )

โดยเฉพาะอย่างยิ่งเวอร์ชันของ Internet Explorer (Windows) ที่ต่ำกว่า 9.0 (วางจำหน่ายในปี 2011) มีปัญหามากมายที่ทำให้ไม่สามารถแสดงภาพ PNG ได้อย่างถูกต้อง[ 80 ]

  • 4.0 เกิดข้อผิดพลาดกับไฟล์ PNG ขนาดใหญ่[ 81 ]
  • 4.0 ไม่รวมฟังก์ชันการดูไฟล์ .png [ 82 ]แต่มีการแก้ไขรีจิสทรี[ 80 ]
  • 5.0 และ 5.01 ได้ทำลายการสนับสนุน OBJECT แล้ว[ 83 ]
  • 5.01 พิมพ์ภาพพาเล็ตที่มีพื้นหลังสีดำ (หรือสีเทาเข้ม) ภายใต้ Windows 98 บางครั้งสีอาจเปลี่ยนแปลงไปอย่างมาก[ 84 ]
  • 6.0 ไม่สามารถแสดงภาพ PNG ที่มีขนาด 4097 หรือ 4098 ไบต์ได้[ 85 ]
  • 6.0 ไม่สามารถเปิดไฟล์ PNG ที่มี IDAT chunk ความยาวศูนย์ตั้งแต่หนึ่งรายการขึ้นไปได้ ปัญหานี้ได้รับการแก้ไขครั้งแรกในการอัปเดตความปลอดภัย 947864 (MS08-024) สำหรับข้อมูลเพิ่มเติม โปรดดูบทความนี้ในฐานความรู้ของ Microsoft: 947864 MS08-024: การอัปเดตความปลอดภัยแบบสะสมสำหรับ Internet Explorer [ 86 ]
  • 6.0 บางครั้งสูญเสียความสามารถในการแสดง PNG ไปโดยสิ้นเชิง แต่ก็มีวิธีแก้ไขต่างๆ[ 87 ]
  • เวอร์ชัน 6.0 และต่ำกว่านั้นมีการรองรับความโปร่งใสของช่องอัลฟาที่ผิดพลาด (จะแสดงสีพื้นหลังเริ่มต้นแทน) [ 88 ] [ 89 ] [ 90 ]
  • เวอร์ชัน 7.0 และต่ำกว่าไม่สามารถรวมค่าความโปร่งใสอัลฟ่า 8 บิตและค่าความทึบแสงขององค์ประกอบ ( CSS – filter: Alpha (opacity=xx)) เข้าด้วยกันได้โดยไม่เติมส่วนที่โปร่งใสบางส่วนด้วยสีดำ[ 91 ]
  • เวอร์ชัน 8.0 และต่ำกว่ามีการรองรับแกมมาที่ไม่สม่ำเสมอ/เสียหาย[ 80 ]
  • เวอร์ชัน 8.0 และต่ำกว่าไม่รองรับการแก้ไขสี[ 80 ]

ระบบปฏิบัติการรองรับไอคอน PNG

ไอคอน PNG ได้รับการสนับสนุนในระบบปฏิบัติการLinux ส่วนใหญ่ มาตั้งแต่ปี 1999 เป็นอย่างน้อย ในสภาพแวดล้อมเดสก์ท็อป เช่นGNOME [ 92 ] ในปี 2006 Microsoft Windowsได้แนะนำการสนับสนุนไอคอน PNG ในWindows Vista [ 93 ] ไอคอน PNG ยังได้รับการสนับสนุนในAmigaOS 4 , AROS , macOS , iOSและMorphOSอีกด้วย นอกจากนี้Androidยังใช้ PNG อย่างกว้างขวาง

ซอฟต์แวร์ปรับขนาดไฟล์และเพิ่มประสิทธิภาพ

ขนาดไฟล์ PNG อาจแตกต่างกันอย่างมาก ขึ้นอยู่กับวิธีการเข้ารหัสและการบีบอัด เรื่องนี้ได้มีการกล่าวถึงและมีคำแนะนำหลายประการในPNG: The Definitive Guide [ 59 ]

เมื่อเปรียบเทียบกับ GIF

เมื่อเปรียบเทียบกับ ไฟล์ GIFไฟล์ PNG ที่มีข้อมูลเดียวกัน (256 สี ไม่มีส่วนประกอบ/เมตาเดตาเสริม) ที่บีบอัดโดยตัวบีบอัดที่มีประสิทธิภาพมักจะมีขนาดเล็กกว่าภาพ GIF ขึ้นอยู่กับไฟล์และตัวบีบอัด ขนาดของ PNG อาจเล็กกว่าเล็กน้อย (10%) ไปจนถึงเล็กกว่าอย่างมาก (50%) หรือใหญ่กว่าเล็กน้อย (5%) แต่แทบจะไม่ใหญ่กว่าอย่างมีนัยสำคัญ[ 59 ]สำหรับภาพขนาดใหญ่ นี่เป็นผลมาจากประสิทธิภาพของDEFLATE ใน PNG เมื่อเทียบกับLZW ใน GIF และเนื่องจากเลเยอร์การบีบอัดล่วงหน้าเพิ่มเติมของตัวกรองแบบคาดการณ์ของ PNG คำนึงถึงโครงสร้างภาพ 2 มิติเพื่อบีบอัดไฟล์เพิ่มเติม เนื่องจากข้อมูลที่กรองแล้วจะเข้ารหัสความแตกต่างระหว่างพิกเซล พิกเซลเหล่านั้นจึงมีแนวโน้มที่จะรวมกลุ่มกันใกล้กับ 0 มากกว่าที่จะกระจายไปทั่วค่าที่เป็นไปได้ทั้งหมด และด้วยเหตุนี้จึงถูกบีบอัดได้ง่ายขึ้นโดย DEFLATE อย่างไรก็ตามAdobe Photoshop , CorelDRAWและMS Paint บางเวอร์ชัน มีการบีบอัด PNG ที่ไม่ดี ทำให้เกิดความเข้าใจผิดว่า GIF มีประสิทธิภาพมากกว่า[ 59 ]

ปัจจัยขนาดไฟล์

ขนาดของไฟล์ PNG แตกต่างกันไปเนื่องจากหลายปัจจัย:

ความลึกของสี
ความลึกของสีสามารถอยู่ในช่วง 1 ถึง 64 บิตต่อพิกเซล
ชิ้นส่วนเสริม
ไฟล์ PNG รองรับเมตาเดตา ซึ่งอาจมีประโยชน์สำหรับการแก้ไข แต่ไม่จำเป็นสำหรับการดูบนเว็บไซต์
การสอดประสาน
เนื่องจากแต่ละรอบของอัลกอริธึม Adam7 จะถูกกรองแยกกัน ซึ่งอาจทำให้ขนาดไฟล์เพิ่มขึ้น[ 59 ]
กรอง
ในขั้นตอนการบีบอัดเบื้องต้น แต่ละบรรทัดจะถูกกรองด้วยตัวกรองแบบคาดการณ์ ซึ่งอาจเปลี่ยนแปลงไปในแต่ละบรรทัด เนื่องจากขั้นตอน DEFLATE สุดท้ายทำงานกับข้อมูลที่ผ่านการกรองทั้งหมดของภาพ จึงไม่สามารถปรับให้เหมาะสมทีละแถวได้ ดังนั้น การเลือกตัวกรองสำหรับแต่ละแถวจึงอาจแตกต่างกันมาก แม้ว่าจะมีหลักการคร่าวๆ อยู่ก็ตาม[หมายเหตุ 1 ]
การบีบอัด
ด้วยการประมวลผลเพิ่มเติม โปรแกรมบีบอัดไฟล์ DEFLATE สามารถสร้างไฟล์ที่มีขนาดเล็กลงได้

ดังนั้นจึงมีการแลกเปลี่ยนขนาดไฟล์ระหว่างความลึกของสีสูง เมตาเดต้าสูงสุด (รวมถึงข้อมูลพื้นที่สี พร้อมกับข้อมูลที่ไม่ส่งผลต่อการแสดงผล) การสลับเฟรม และความเร็วในการบีบอัด ซึ่งทั้งหมดนี้ทำให้ได้ไฟล์ขนาดใหญ่ที่มีความลึกของสีต่ำ มีส่วนเสริมน้อยลงหรือไม่มีเลย ไม่มีการสลับเฟรม และการกรองและการบีบอัดที่ปรับแต่งแล้วแต่ต้องใช้การคำนวณอย่างหนัก สำหรับวัตถุประสงค์ที่แตกต่างกัน จะมีการเลือกการแลกเปลี่ยนที่แตกต่างกัน: ไฟล์ขนาดใหญ่ที่สุดอาจดีที่สุดสำหรับการจัดเก็บและแก้ไข ในขณะที่ไฟล์ที่ลดขนาดลงอาจดีที่สุดสำหรับการใช้งานบนเว็บไซต์ และในทำนองเดียวกัน การบีบอัดที่รวดเร็วแต่คุณภาพต่ำเป็นที่ต้องการเมื่อแก้ไขและบันทึกไฟล์ซ้ำๆ ในขณะที่การบีบอัดที่ช้าแต่คุณภาพสูงเป็นที่ต้องการเมื่อไฟล์มีความเสถียร: เมื่อจัดเก็บหรือโพสต์ การสลับเฟรมเป็นการแลกเปลี่ยน: มันช่วยเร่งการเรนเดอร์ไฟล์ขนาดใหญ่ในช่วงแรกอย่างมาก (ปรับปรุงความหน่วง) แต่อาจทำให้ขนาดไฟล์เพิ่มขึ้น (ลดปริมาณงาน) โดยได้ประโยชน์เพียงเล็กน้อย โดยเฉพาะอย่างยิ่งสำหรับไฟล์ขนาดเล็ก[ 59 ]

การบีบอัด PNG แบบสูญเสียข้อมูล

แม้ว่า PNG จะเป็นรูปแบบที่ไม่สูญเสียข้อมูล แต่ตัวเข้ารหัส PNG สามารถประมวลผลข้อมูลภาพล่วงหน้าในลักษณะที่สูญเสียข้อมูลเพื่อปรับปรุงการบีบอัด PNG ตัวอย่างเช่น การควอนไทซ์ PNG สีจริงให้เหลือ 256 สี จะทำให้สามารถใช้ประเภทสีแบบดัชนีได้ ซึ่งมีแนวโน้มที่จะลดขนาดไฟล์ลง[ 94 ]

ซอฟต์แวร์แก้ไขภาพ

โปรแกรมบางโปรแกรมมีประสิทธิภาพมากกว่าโปรแกรมอื่นในการบันทึกไฟล์ PNG ซึ่งเกี่ยวข้องกับการใช้งานวิธีการบีบอัด PNG ของโปรแกรมนั้นๆ

โปรแกรมกราฟิกหลายโปรแกรม (เช่น ซอฟต์แวร์ Preview ของ Apple) บันทึกไฟล์ PNG ที่มี ข้อมูลเมตาและข้อมูลการปรับแก้สีจำนวนมาก ซึ่งโดยทั่วไปแล้วไม่จำเป็นสำหรับการดู บนเว็บไฟล์ PNG ที่ไม่ได้ปรับแต่งจากAdobe Fireworksก็มีปัญหาเรื่องนี้เช่นกัน เนื่องจากมีตัวเลือกที่ทำให้ภาพสามารถแก้ไขได้ในโปรแกรมแก้ไขภาพที่รองรับ นอกจากนี้ CorelDRAW (อย่างน้อยเวอร์ชัน 11) บางครั้งก็สร้างไฟล์ PNG ที่ไม่สามารถเปิดได้ใน Internet Explorer (เวอร์ชัน 6–8)

ประสิทธิภาพของ Adobe Photoshopในการประมวลผลไฟล์ PNG ดีขึ้นในชุดโปรแกรม CS เมื่อใช้คุณสมบัติ "บันทึกสำหรับเว็บ" (ซึ่งอนุญาตให้ใช้ PNG/8 ได้อย่างชัดเจน)

โปรแกรม Fireworks ของ Adobe บันทึกไฟล์ PNG ที่มีขนาดใหญ่กว่าโปรแกรมอื่นๆ หลายโปรแกรมโดยค่าเริ่มต้น นี่เป็นผลมาจากกลไกการบันทึกไฟล์ของโปรแกรม: ภาพที่สร้างโดยฟังก์ชันการบันทึกของ Fireworks จะมีส่วนข้อมูลขนาดใหญ่ที่เป็นส่วนตัว ซึ่งประกอบด้วยข้อมูลเลเยอร์และเวกเตอร์ทั้งหมด ทำให้สามารถแก้ไขได้โดยไม่สูญเสียคุณภาพ เมื่อบันทึกด้วย ตัวเลือก การส่งออกไฟล์ PNG ของ Fireworks จะมีคุณภาพเทียบเท่ากับไฟล์ที่สร้างโดยโปรแกรมแก้ไขภาพอื่นๆ แต่จะไม่สามารถแก้ไขได้อีกต่อไปนอกจากเป็นบิตแมปแบบแบน Fireworks ไม่สามารถบันทึกไฟล์ PNG ที่ปรับขนาดให้เหมาะสมสำหรับการแก้ไขเวกเตอร์ได้

ตัวอย่างอื่นๆ ที่น่าสนใจของโปรแกรมบีบอัดไฟล์ PNG ที่ไม่ดี ได้แก่:

  • โปรแกรม Paint ของ Microsoft สำหรับ Windows XP
  • Microsoft Picture It! Photo Premium 9

การบีอัดไฟล์ที่ไม่ดีจะทำให้ขนาดไฟล์ PNG ใหญ่ขึ้น แต่จะไม่ส่งผลกระทบต่อคุณภาพของภาพหรือความเข้ากันได้ของไฟล์กับโปรแกรมอื่นๆ

เมื่อความลึกของสีของ ภาพ สีจริงถูกลดลงเหลือจานสี 8 บิต (เช่นใน GIF) ข้อมูลภาพที่ได้มักจะมีขนาดเล็กกว่ามาก ดังนั้นไฟล์ PNG สีจริงจึงมักมีขนาดใหญ่กว่าไฟล์ GIF ที่ลดสีลง แม้ว่า PNG จะสามารถจัดเก็บเวอร์ชันที่ลดสีลงเป็นไฟล์จานสีที่มีขนาดใกล้เคียงกันได้ก็ตาม ในทางกลับกัน เครื่องมือบางอย่าง เมื่อบันทึกภาพเป็น PNG จะบันทึกเป็นสีจริงโดยอัตโนมัติ แม้ว่าข้อมูลต้นฉบับจะใช้สีเพียง 8 บิตก็ตาม ซึ่งทำให้ไฟล์มีขนาดใหญ่ขึ้นโดยไม่จำเป็น[ 59 ]ปัจจัยทั้งสองนี้อาจนำไปสู่ความเข้าใจผิดว่าไฟล์ PNG มีขนาดใหญ่กว่าไฟล์ GIF ที่เทียบเท่ากัน

เครื่องมือเพิ่มประสิทธิภาพ

มีเครื่องมือต่างๆ มากมายสำหรับการปรับแต่งไฟล์ PNG โดยมีวิธีการดังนี้:

  • (เลือกได้) ลบส่วนที่ไม่จำเป็นออก
  • ลดความเข้มของสีโดยทำอย่างใดอย่างหนึ่งดังต่อไปนี้:
    • ให้ใช้จานสี (แทน RGB) หากภาพมีสีไม่เกิน 256 สี
    • ใช้จานสีขนาดเล็กกว่า หากภาพมี 2, 4 หรือ 16 สี หรือ
    • (เลือกได้) ตัดทิ้งข้อมูลบางส่วนในภาพต้นฉบับโดยไม่ตั้งใจ
  • การปรับแต่งตัวเลือกตัวกรองทีละบรรทัด และ
  • การปรับการบีบอัด DEFLATE ให้เหมาะสมที่สุด

รายการเครื่องมือ

  • pngcrushเป็นโปรแกรมปรับแต่งไฟล์ PNG ที่เก่าแก่ที่สุดในบรรดาโปรแกรมยอดนิยม โปรแกรมนี้อนุญาตให้ทดลองเลือกตัวกรองและค่าการบีบอัดได้หลายแบบ และสุดท้ายจะเลือกค่าที่น้อยที่สุด รูปแบบการทำงานนี้ถูกนำไปใช้ในโปรแกรมปรับแต่งไฟล์ PNG เกือบทุกโปรแกรม
  • advpng และยูทิลิตี้ advdef ที่คล้ายกันในแพ็คเกจ AdvanceCOMP จะบีบอัดไฟล์ PNG IDAT อีกครั้ง โดยจะใช้การบีบอัดแบบ DEFLATE ที่แตกต่างกันไปตามระดับการบีบอัดที่เลือก ซึ่งเป็นการแลกเปลี่ยนระหว่างความเร็วและขนาดไฟล์: zlib ที่ระดับ 1, libdeflate ที่ระดับ 2, LZMA DEFLATE ของ7-zipที่ระดับ 3 และzopfliที่ระดับ 4
  • pngoutถูกสร้างขึ้นโดยใช้โปรแกรม deflater ของผู้เขียนเอง (เช่นเดียวกับโปรแกรม zip ของผู้เขียน kzip) โดยยังคงรักษาคุณสมบัติการลด/กรองสีทั้งหมดไว้ อย่างไรก็ตาม pngout ไม่อนุญาตให้ทดลองใช้ตัวกรองหลายตัวในการทำงานครั้งเดียว ขอแนะนำให้ใช้เวอร์ชัน GUI เชิงพาณิชย์ pngoutwin หรือใช้ร่วมกับwrapperเพื่อทำการทดลองโดยอัตโนมัติ หรือบีบอัดใหม่โดยใช้ deflater ของโปรแกรมเองในขณะที่ยังคงตัวกรองไว้ทีละบรรทัด[หมายเหตุ 2 ]
  • zopflipngถูกสร้างขึ้นพร้อมกับโปรแกรมบีบอัดไฟล์ของตัวเองที่ชื่อ zopfli มันมีคุณสมบัติการปรับแต่งทั้งหมดเหมือนกับ pngcrush (รวมถึงการทดสอบอัตโนมัติ) ในขณะเดียวกันก็มีโปรแกรมบีบอัดไฟล์ที่ดีมาก แต่ทำงานช้า

ด้านล่างนี้คือการเปรียบเทียบคุณสมบัติโดยสังเขปของทั้งสองอย่าง

ตัวเพิ่มประสิทธิภาพการกำจัดชิ้นส่วนการลดสีการกรองการนำตัวกรองกลับมาใช้ใหม่[หมายเหตุ 3 ]ทดสอบตัวกรองหลายตัวในการทำงานครั้งเดียวเครื่องลดแรงดัน[หมายเหตุ 4 ]
advpngใช่ไม่[หมายเหตุ 5 ]0เลขที่ไม่มีข้อมูล[หมายเหตุ 6 ](หลายรายการ)
advdefเลขที่เลขที่ใช้ชุดตัวกรองเดิมซ้ำเสมอไม่มีข้อมูล(หลายรายการ)
pngcrushใช่ใช่0–4 หรือแบบปรับได้เลขที่ใช่zlib
pngoutใช่ใช่0–4 หรือแบบปรับได้ใช่[หมายเหตุ 2 ]เลขที่ซิป
zopflipngใช่ใช่0–4 หรือปรับเปลี่ยนได้ตามสถานการณ์โดยใช้อัลกอริทึม 2 แบบ หรือใช้วิธีการแบบดั้งเดิมใช่ใช่ซอฟลี

ก่อนที่zopflipngจะมีเครื่องมือนี้ วิธีที่ดีในการปรับแต่งไฟล์ PNG ในทางปฏิบัติคือการใช้เครื่องมือ 2 ตัวร่วมกันตามลำดับเพื่อให้ได้การบีบอัดที่ดีที่สุด: ตัวหนึ่งที่ปรับแต่งตัวกรอง (และลบส่วนที่ไม่จำเป็นออก) และอีกตัวหนึ่งที่ปรับแต่ง DEFLATE แม้ว่า pngout จะมีทั้งสองแบบ แต่สามารถระบุตัวกรองได้เพียงประเภทเดียวในการทำงานแต่ละครั้ง ดังนั้นจึงสามารถใช้ร่วมกับเครื่องมือ wrapperหรือใช้ร่วมกับpngcrush [ หมายเหตุ 2 ]ซึ่งทำหน้าที่เป็นตัว deflater อีกครั้ง เช่นเดียวadvdefกับ

การกำจัดชิ้นส่วนเสริม

สำหรับการลบส่วนที่ไม่จำเป็นออก เครื่องมือเพิ่มประสิทธิภาพ PNG ส่วนใหญ่มีความสามารถในการลบข้อมูลการแก้ไขสีทั้งหมดออกจากไฟล์ PNG (แกมมา สมดุลแสงขาว โปรไฟล์สี ICC โปรไฟล์สี RGB มาตรฐาน) ซึ่งมักจะทำให้ขนาดไฟล์เล็ลงมาก ตัวอย่างเช่น ตัวเลือกบรรทัดคำสั่งต่อไปนี้จะทำเช่นนั้นได้pngcrush:

pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB InputFile.png OutputFile.png

การเพิ่มประสิทธิภาพตัวกรอง

pngcrushและตัวเลือกทั้งหมดเสนอการใช้ตัวกรองประเภท 0–4 แบบทั่วโลก (โดยใช้ตัวกรองประเภทเดียวกันสำหรับทุกบรรทัด) หรือใช้ "ตัวกรองเสมือน" (หมายเลข 5) ซึ่งสำหรับแต่ละบรรทัดจะเลือกตัวกรองประเภท 0–4 แบบใดแบบหนึ่งโดยใช้อัลกอริธึมแบบปรับได้pngoutมีวิธีการปรับตัว 3 วิธีที่แตกต่างกัน รวมถึงการค้นหาแบบใช้กำลังทั้งหมดที่พยายามปรับการกรองให้เหมาะสมที่สุด[หมายเหตุ 7 ]zopflipngzopflipng

pngoutและzopflipngมีตัวเลือกในการรักษา/นำชุดตัวกรองแบบบรรทัดต่อบรรทัดที่มีอยู่ในภาพอินพุตกลับ มาใช้ใหม่ [หมายเหตุ 2 ] [หมายเหตุ 8 ]

pngcrushและzopflipngมีตัวเลือกให้ลองใช้กลยุทธ์การกรองที่แตกต่างกันในการทำงานครั้งเดียวและเลือกสิ่งที่ดีที่สุด เวอร์ชันบรรทัดคำสั่งฟรีแวร์pngoutไม่นำเสนอสิ่งนี้ แต่เวอร์ชันเชิงพาณิชย์pngoutwinมี[หมายเหตุ 9 ]

การเพิ่มประสิทธิภาพ DEFLATE

ZopfliและLZMA SDKมี การใช้งาน DEFLATEที่สามารถสร้างอัตราการบีบอัด ที่สูง กว่า การใช้งานอ้างอิงของ zlibแต่แลกมาด้วยประสิทธิภาพที่ลดลง AdvanceCOMP advpngสามารถadvdefใช้ไลบรารีใดไลบรารีหนึ่งเหล่านี้ในการบีบอัดไฟล์ PNG ใหม่ได้ นอกจากนี้PNGOUT ยังมี การใช้งาน DEFLATE ที่เป็นกรรมสิทธิ์ของตนเอง อีกด้วย

advpngไม่มีตัวเลือกในการใช้ฟิลเตอร์และจะใช้ฟิลเตอร์ 0 เสมอ (ทำให้ข้อมูลภาพไม่ถูกกรอง) ดังนั้นจึงไม่ควรใช้ในกรณีที่ภาพได้รับประโยชน์อย่างมากจากการกรอง ในทางตรงกันข้ามadvdefโปรแกรมจากแพ็กเกจเดียวกันนี้ไม่จัดการกับโครงสร้าง PNG และทำหน้าที่เพียงแค่บีบอัดไฟล์กลับเป็นขนาดเดิม โดยคงการตั้งค่าฟิลเตอร์ที่มีอยู่เดิมไว้

การเพิ่มประสิทธิภาพไอคอน

เนื่องจากไอคอนที่ออกแบบมาสำหรับ Windows Vista และเวอร์ชันที่ใหม่กว่าอาจมีภาพย่อย PNG การปรับแต่งจึงสามารถใช้กับภาพย่อยเหล่านั้นได้เช่นกัน อย่างน้อยหนึ่งโปรแกรมแก้ไขไอคอนอย่าง Pixelformer สามารถทำการปรับแต่งพิเศษขณะบันทึก ไฟล์ ICOซึ่งจะช่วยลดขนาดไฟล์ได้

ไอคอนสำหรับ macOSอาจมีภาพย่อยในรูปแบบ PNG แต่ปัจจุบันยังไม่มีเครื่องมือสำหรับสร้างภาพย่อยดังกล่าว

ดูเพิ่มเติม

หมายเหตุอธิบาย

  1. ^การกรองใช้เพื่อเพิ่มความคล้ายคลึงกับข้อมูล ซึ่งจะช่วยเพิ่มอัตราการบีบอัด อย่างไรก็ตาม ในทางทฤษฎีแล้วไม่มีสูตรสำหรับความคล้ายคลึง หรือความสัมพันธ์ที่แน่นอนระหว่างความคล้ายคลึงกับตัวบีบอัด ดังนั้น เว้นแต่จะทำการบีบอัดแล้ว จึงจะบอกได้ว่าชุดตัวกรองใดดีกว่ากัน
  2. ^ a b c dใช้pngout -f6เพื่อนำชุดตัวกรองก่อนหน้ากลับมาใช้ใหม่
  3. ^เครื่องมือที่มีคุณสมบัติดังกล่าวสามารถทำหน้าที่เป็นเพียงตัวบีบอัดไฟล์ PNG กลับคืนมาเท่านั้น
  4. ^ zlib ซึ่งเป็นตัวอย่างการใช้งาน deflate นั้น การบีบอัดยังไม่เหมาะสมแม้จะ ตั้งค่าไว้ที่ระดับสูงสุดก็ตาม ดู Zopfli รูปแบบ zip ใน 7-zipและ pngoutแทน
  5. ^นอกจากจะไม่รองรับการลดจำนวนสีแล้ว advpng ยังใช้งานไม่ได้กับภาพที่มีพื้นที่สีจำกัดอีกด้วย
  6. ^ Advpng สามารถใช้ตัวกรอง 0 ได้ทั่วโลกเท่านั้น ดังนั้นจึงไม่ใช่ทั้งใช่หรือไม่ใช่ แต่เป็น N/A
  7. ^[pngcrush|pngout] -fหรือzopflipng --filters
  8. ^zopflipng --filters=p
  9. หน้าต่างการตั้งค่าสำหรับเพิ่มประสิทธิภาพของ ^pngoutwinช่วยให้ผู้ใช้เลือกกลยุทธ์การกรองได้หลายแบบ
W3C 2003 , 11.2.5 IENDตัวอย่างภาพ
  • ^ W3C 2003 , 11.3.3.3 iCCPโปรไฟล์ ICC แบบฝังตัว
  • ^ "ข้อกำหนด PNG (ฉบับที่สาม), cICP - รหัสจุดที่ไม่ขึ้นกับการเข้ารหัสสำหรับการระบุประเภทสัญญาณวิดีโอ" . w3.org . 21 กันยายน 2023
  • ^ "การเพิ่มการรองรับภาพ HDR ให้กับรูปแบบ PNG"กลุ่มชุมชน W3C Color on the Web 3 พฤษภาคม 2023
  • ^ Thomas Kopp (17 เมษายน 2551). "ลายเซ็นดิจิทัล PNG: ข้อกำหนดส่วนขยาย" .
  • ^ "ข้อกำหนดของไฟล์ภาพเครือข่ายแบบพกพา (PNG) (ฉบับที่สาม) "
  • ^ "ส่วนขยายของข้อกำหนด PNG 1.2 เวอร์ชัน 1.5.0" . ftp-osl.osuosl.org .
  • ^ W3C 2003 , 11.3.3.2 gAMAค่าแกมมาของภาพ .
  • ^ W3C 2003 , 11.3.5.3 pHYsขนาดพิกเซลทางกายภาพ
  • ^ W3C 2003 , 11.3.3.4 sBITบิตสำคัญ
  • ^ "ข้อกำหนด PNG (Portable Network Graphics) เวอร์ชัน 1.0" . w3.org . สืบค้นเมื่อ30 พฤษภาคม 2022 .4.2.6. sBIT บิตสำคัญ รวม 13 ไบต์ - ประเภทสี 2 และ 3 รวม 6 ไบต์
  • ^ Roelofs 2003 ,บิตสำคัญ (sBIT) "ภาพขาวดำเป็นภาพที่ง่ายที่สุด sBIT จึงประกอบด้วยไบต์เดียวที่ระบุจำนวนบิตสำคัญในข้อมูลต้นฉบับ"
  • ^ "ข้อกำหนด PNG: ข้อกำหนดของชิ้นส่วน "
  • ^ "ข่าวสาร PNG จากปี 2006" . Libpng.org.
  • ^ a b "ข้อกำหนด PNG: เหตุผล" . w3.org .
  • ^ W3C 2003 , 9 การกรอง .
  • ^ "อัลกอริทึมการกรอง" . ข้อกำหนด PNG .
  • ^ Paeth, Alan W. (1991). Arvo, James (บรรณาธิการ). "การบีบอัดไฟล์ภาพทำได้ง่าย". Graphics Gems 2. Academic Press, San Diego: 93–100 . doi : 10.1016/B978-0-08-050754-5.50029-3 . ISBN 0-12-064480-0.ไอคอนการเข้าถึงที่ปิดอยู่
  • ^ Crocker, Lee Daniel (กรกฎาคม 2538). "PNG: รูปแบบกราฟิกเครือข่ายพกพา" . วารสารของดร.ด็อบบ์ . 20 (232): 36– 44.
  • ^ "บทนำเกี่ยวกับ PNG" . nuwen.net . สืบค้นเมื่อ20 ตุลาคม 2010 .
  • ^ "ฉันสามารถใช้... ตารางที่รองรับ HTML5, CSS3 ฯลฯ ได้หรือไม่" caniuse.com สืบค้นเมื่อ 6 กุมภาพันธ์ 2021
  • ^ "iOS 8 และ iPhone 6 สำหรับนักพัฒนาเว็บและนักออกแบบ: วิวัฒนาการขั้นต่อไปของ Safari และเว็บแอปแบบเนทีฟ" mobilexweb.com. 17 กันยายน 2014. สืบค้นเมื่อ24 กันยายน 2014 .
  • ^ scroggo (14 มีนาคม 2017). "chromium / chromium / src / 7d2b8c45afc9c0230410011293cc2e1dbb8943a7" . chromium.googlesource.com . สืบค้นเมื่อ31 มีนาคม 2017 .
  • ^ chrome-cron; และคณะ (27 มีนาคม 2017). "chromium / chromium / src / 59.0.3047.0..59.0.3053.0" . chromium.googlesource.com . สืบค้นเมื่อ31 มีนาคม 2017 .
  • ^ "Dev.Opera — มีอะไรใหม่ใน Chromium 59 และ Opera 46" . dev.opera.com . สืบค้นเมื่อ11 กันยายน 2022 .
  • ^ "การลงคะแนนล้มเหลว: APNG 20070405a" 20 เมษายน 2550 เก็บถาวรจากต้นฉบับเมื่อ 3 กุมภาพันธ์ 2551
  • ^ "การเปรียบเทียบข้อเสนอการสร้างแอนิเมชั่นของกลุ่ม PNG + ซอฟต์แวร์ทดสอบ" . xs4all.nl . เก็บถาวรจากต้นฉบับเมื่อวันที่ 24 มกราคม 2552
  • ^ "ข้อกำหนด PNG (ฉบับที่สาม), APNG: แอนิเมชันแบบเฟรม" . w3.org . 24 มิถุนายน 2025.
  • ^ a b c P. Deutsch; JL. Gailly (พฤษภาคม 1996). ข้อกำหนดรูปแบบข้อมูลบีบอัด ZLIB เวอร์ชัน 3.3กลุ่มงานเครือข่ายdoi : 10.17487/ RFC1950 RFC 1950เพื่อการให้ข้อมูล
  • ^ P. Deutsch (พฤษภาคม 1996). ข้อกำหนดรูปแบบข้อมูลที่บีบอัด DEFLATE เวอร์ชัน 1.3กลุ่มงานเครือข่ายdoi : 10.17487/ RFC1951 RFC 1951เพื่อการให้ข้อมูล
  • ^ "บทนำพื้นฐานเกี่ยวกับคุณสมบัติของไฟล์ PNG" . Libpng.org . สืบค้นเมื่อ20 ตุลาคม 2010 .
  • ^ "GIF, PNG, JPG ควรใช้แบบไหนดี?" . Sitepoint.com. 3 สิงหาคม 2552. สืบค้นเมื่อ20 ตุลาคม 2553 .
  • ^ "ส่วนขยายของข้อกำหนด PNG 1.2 เวอร์ชัน 1.5.0" สืบค้นเมื่อ 5 พฤษภาคม 2020
  • ^ "T.87 : การ บีบอัดภาพนิ่งแบบต่อเนื่องโดยไม่สูญเสียข้อมูลและเกือบไม่สูญเสียข้อมูล – มาตรฐานพื้นฐาน"สหภาพโทรคมนาคมระหว่างประเทศสืบค้นเมื่อ20 มีนาคม 2554
  • ^ a b c d e f g Roelofs 2003บทที่ 9 การบีบอัดและการกรอง
  • ^ "รูป แบบไฟล์ JPEG XL"หอสมุดแห่งชาติสหรัฐอเมริกาสืบค้นเมื่อ1 มกราคม 2025
  • ^ "เหตุใด Apple จึงใช้ JPEG XL และมีความหมายอย่างไรต่อรูปถ่ายของคุณ" Petapixel 18กันยายน 2024 สืบค้นเมื่อ1 มกราคม 2025
  • ^ "การเข้ารหัสภาพ JPEG XL"หอสมุดรัฐสภาสหรัฐอเมริกาสืบค้นเมื่อ 1 มกราคม 2025
  • ^ "JPEG XL เปรียบเทียบกับตัวแปลงสัญญาณภาพอื่นๆ อย่างไร" . Cloudinary . 26 พฤษภาคม 2020 . สืบค้นเมื่อ1 มกราคม 2025 .
  • ^ "WebP" . www.loc.gov . 13 เมษายน 2023 . สืบค้นเมื่อ22 สิงหาคม 2024 .
  • ^ a b Ellis, Matt (22 กุมภาพันธ์ 2021). "WebP คืออะไร? ข้อดีและข้อเสียของรูปแบบภาพรุ่นใหม่นี้" . 99designs . สืบค้นเมื่อ22 สิงหาคม 2024 .
  • ^ "รูปแบบภาพสำหรับเว็บ | WebP" . Google for Developers . สืบค้นเมื่อ22 สิงหาคม 2024 .
  • ^เวส เฟนลอน (28 เมษายน 2023). "นี่คือเหตุผลว่าทำไมคุณถึงต้องรับมือกับเว็บเพจที่น่ารำคาญมากมายในตอนนี้" . PC Gamer . สืบค้นเมื่อ22 สิงหาคม 2024 .
  • ^ "AVIF: พบกับรูปแบบไฟล์ภาพระดับต่อไป" . Alliance for Open Media . 8 พฤศจิกายน 2023 . สืบค้นเมื่อ26 กันยายน 2024 .
  • ^ "PNG กับ AVIF: การต่อสู้ครั้งสำคัญระหว่างรูปแบบภาพ | Coconut©" . www.coconut.co . สืบค้นเมื่อ26 กันยายน 2024 .
  • ^ a b "AVIF กับ WebP: 4 ข้อแตกต่างที่สำคัญและวิธีการเลือกใช้" . Cloudinary . สืบค้นเมื่อ26 กันยายน 2024 .
  • ^ "libpng" . สืบค้นเมื่อ 13 กรกฎาคม 2013 .
  • ^ "ความช่วยเหลือเกี่ยวกับ Fireworks / การบันทึกและการส่งออก" . Adobe Inc . สืบค้นเมื่อ16 เมษายน 2026 .
  • ^ "การใช้ภาพ PNG เพื่อแสดงข้อมูล"ศูนย์วิทยาศาสตร์ทางน้ำแห่งรัฐโอเรกอน 16 กุมภาพันธ์ 2549 เก็บถาวรจากต้นฉบับเมื่อ 20 สิงหาคม 2551 เรียกดูเมื่อ 21 ตุลาคม 2546
  • ^ "เหตุใดจึงไม่มีไฟล์ GIF ในหน้าเว็บของ GNU"ระบบปฏิบัติการ GNU 16 ธันวาคม 2008
  • ^ "เอกสารข้อเท็จจริงเกี่ยวกับ PNG" . สมาคมเวิลด์ไวด์เว็บ . 7 ตุลาคม 1996.
  • ^ "หน้าแหล่งข้อมูลสำหรับ gif2png 2.5.11" . catb.org .
  • ^ " เผาGIF ทั้งหมด " burnallgifs.org
  • ^ "ความโปร่งใสของไฟล์ PNG ใน Internet Explorer" . PC Magazine . 5 ตุลาคม 2547.
  • ^ "แนวโน้มรายปีในอดีตของสถิติการใช้งานรูปแบบไฟล์ภาพสำหรับเว็บไซต์" . w3techs.com .
  • ^ a b c d "เบราว์เซอร์ที่รองรับไฟล์ PNG" 14 มีนาคม 2552
  • ^ "Windows Explorer ขัดข้องเมื่อฉันคลิกไฟล์ PNG ของ Fireworks เพื่อดู" Adobe Systems 5 มิถุนายน 2550
  • ^ "ไม่สามารถดูภาพ .png ด้วย Internet Explorer 4.0"ฐานความรู้ของ Microsoft
  • ^ "ไฟล์ PNG ที่อยู่ภายในแท็กวัตถุจะถูกพิมพ์ออกมาเป็นภาพเนกาทีฟ"ฐานความรู้ของ Microsoft
  • ^ "ภาพ PNG แสดงผลไม่ถูกต้องใน Internet Explorer 5.01"ฐานความรู้ของ Microsoft
  • ^ "คุณไม่สามารถดูภาพ PNG บางภาพใน Internet Explorer 6 ได้"ฐานข้อมูลความรู้ของ Microsoft
  • ^ "คุณไม่สามารถใช้ Internet Explorer 6 เปิดไฟล์ PNG ที่มี IDAT chunk ความยาวเป็นศูนย์ตั้งแต่หนึ่งตัวขึ้นไปได้"ฐานข้อมูลความรู้ของ Microsoft
  • ^ "คำถามที่พบบ่อยเกี่ยวกับ PNG "
  • ^ "ปริญญาเอก: การ์ดกราฟิกแบบพกพา (NPG) สูญเสียความโปร่งใสในเว็บเบราว์เซอร์"ฐานความรู้ของ Microsoft
  • ^ "ไฟล์ PNG ไม่แสดงความโปร่งใสใน Internet Explorer"ฐานความรู้ของ Microsoft
  • ^ Lovitt, Michael (21 ธันวาคม 2002). "การปรับความทึบแสงของภาพ PNG ให้เหมาะสมกับทุกเบราว์เซอร์: วิธีแก้ปัญหาที่แท้จริง" . A List Apart . เก็บถาวรจากต้นฉบับเมื่อ 18 สิงหาคม 2011 . สืบค้นเมื่อ21 กรกฎาคม 2009 .
  • ^ "IE7 alpha transparent PNG + opacity" . Channel 9 . เก็บถาวรจากต้นฉบับเมื่อวันที่ 27 สิงหาคม 2011 . เรียกดูเมื่อวันที่ 23 มกราคม 2009 .
  • ^ Fulbright, Michael (1999). "แผนงานไลบรารี GNOME 1.0" . เก็บถาวรจากต้นฉบับเมื่อวันที่ 30 มกราคม 2010 . สืบค้นเมื่อ19 ธันวาคม 2007 .
  • ^ "Windows Vista – ไอคอน" . OOne . 2007. เก็บถาวรจากต้นฉบับเมื่อวันที่ 11 พฤศจิกายน 2007 . เรียกดูเมื่อวันที่ 12 พฤศจิกายน 2007 .
  • ^ "PNG อาจเป็นรูปแบบที่มีการสูญเสียข้อมูล" . Pngmini.com . สืบค้นเมื่อ1 กุมภาพันธ์ 2014 .
  • อ่านเพิ่มเติม

    • Roelofs, Greg (เมษายน 1997). "Linux Gazette: ประวัติความเป็นมาของรูปแบบ Portable Network Graphics (PNG)" . Linux Journal . 1997 (36es). Specialized Systems Consultants, Inc. ISSN  1075-3583 .
    • โรเอลอฟส์, เกร็ก (2003). PNG: คู่มือฉบับสมบูรณ์ (ฉบับที่ 2). โอไรลีย์ มีเดีย. ISBN 1-56592-542-4.
    • "ข้อกำหนดสำหรับไฟล์ภาพพกพา (PNG)" (ฉบับที่สอง) W3C 10 พฤศจิกายน 2546
    • ข้อกำหนด PNG (ฉบับที่สาม)
    • เว็บไซต์หลักของ PNG
    • หน้าหลักของ libpng
    • เรื่องราวของปาปัวนิวกินีโดย เกร็ก โรเอลอฟส์
    • ทดสอบภาพ PNG แบบอินไลน์
    • อาร์เอฟซี  2083
    • ข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขสี PNG
    • ไลบรารี GD สำหรับสร้างไฟล์ PNG แบบไดนามิกด้วย PHP
    • PNG Adam7 แบบสลับเส้น เก็บถาวรเมื่อวันที่ 31 สิงหาคม 2024 ที่Wayback Machine
    • การเข้ารหัส Web Shells ลงในไฟล์ PNG : การเข้ารหัสข้อมูลที่มนุษย์อ่านได้ภายในบล็อก IDAT
    ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=PNG&oldid=1361390230 "

    สรุปเนื้อหา

    ข้อมูลสำคัญจากบทความ

    ข้อมูลสำคัญเกี่ยวกับ PNG

    Portable Network Graphics ( PNG ซึ่ง ออกเสียงอย่างเป็นทางการว่า/ pɪŋ / PING [ 3 ] [ 4 ] และ ออกเสียง แบบ ไม่เป็นทางการว่า / ˌpiːɛnˈdʒiː / PEE - en - JEE [ 5 ] ) เป็น รูป แบบไฟล์...

    ประวัติและพัฒนาการ

    แรงจูงใจในการสร้างรูปแบบ PNG มาจากการประกาศเมื่อวันที่ 28 ธันวาคม พ.ศ.

    กลุ่มทำงาน PNG

    ข้อกำหนด PNG ดั้งเดิมถูกเขียนขึ้นโดยกลุ่มผู้เชี่ยวชาญและผู้ที่ชื่นชอบด้าน กราฟิกคอมพิวเตอร์ เฉพาะกิจ การอภิปรายและการตัดสินใจเกี่ยวกับรูปแบบดำเนินการผ่านทางอีเมล ผู้เขียนดั้งเดิมที่ระบุไว้ใน RFC 2083 ได้แก่: [ 19 ]

    รูปแบบไฟล์

    ภาพ PNG ที่แสดงด้วยโปรแกรม แก้ไขเลขฐานสิบหก สำหรับ Ubuntu