ZSoft PCX (.pcx)
ZSoft มาตรฐานZSoft PC Paintbrush Bitmap (PCX) คือรูปแบบกราฟิกพีซียุคแรกในตำนาน ซึ่งกลายมาเป็นมาตรฐานภาพแรสเตอร์ตัวแรกที่ถูกนำมาใช้อย่างแพร่หลายสำหรับ MS-DOS, IBM PC ที่เข้ากันได้ และเกม PC ยุคคลาสสิก
แปลง PCX เป็น PNG
ตัวแปลงจาก PCX เป็น PNG ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบไฟล์และข้อมูลเมตา
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ PCX โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวระดับไบต์
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ PCX โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
0A 05 01การแสดงผลรูปแบบ ASCII: ...
มาตรฐาน: ZSoft PC Paintbrush Technical Reference Manual
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | ส่วนหัวคงที่ขนาด 128 ไบต์ ตามด้วยเส้นสแกนที่บีบอัดแบบ RLE และพาเลตสี 256 สีที่อาจอยู่ท้ายไฟล์ |
| การบีบอัด | การเข้ารหัสความยาวช่วงข้อมูลระดับไบต์ (RLE) โดยใช้บิตตัวบ่งชี้จำนวน 0xC0 |
| การจัดลำดับไบต์ | ลำดับไบต์แบบ Little-Endian (Intel x86) |
| พื้นที่สี | RGB แบบพาเลต 4 สีของ CGA, 16 สีของ EGA หรือ 256 สีของ VGA |
| ช่องสัญญาณและโครงสร้าง | ภาพแบบพาเลต 1, 2, 4 หรือ 8 บิต หรือ RGB แบบระนาบ 24 บิต (3 ระนาบ ระนาบละ 8 บิต) |
| ขนาดสูงสุด | สูงสุด 65,535 x 65,535 พิกเซล (พิกัด 16 บิต) |
| ความโปร่งใส | ไม่มี (ภาพแรสเตอร์รุ่นเก่าที่ทึบแสง) |
| การสตรีมและแบบโปรเกรสซีฟ | เล่นตามลำดับทีละเส้นสแกน |
ตารางเปรียบเทียบทางเทคนิค: PCX กับคู่แข่ง
| คุณลักษณะทางเทคนิค | PCX (ปัจจุบัน) | BMP | GIF | PNG |
|---|---|---|---|---|
| ยุคที่ใช้งาน | 1985 - 1995 (ยุคทองของ MS-DOS) | 1990 - ปัจจุบัน (มาตรฐาน Windows) | 1987 - ปัจจุบัน (มาตรฐานเว็บ) | 1996 - ปัจจุบัน (มาตรฐานเว็บสมัยใหม่) |
| อัลกอริทึมการบีบอัด | การบีบอัด Byte-run RLE | ไม่ได้บีบอัด / RLE | การบีบอัด LZW ปลอดสิทธิบัตร | การบีบอัด Deflate LZ77 |
| สถาปัตยกรรมสี | ระนาบบิต EGA/VGA และแบบใช้จานสี | สแกนไลน์ DIB | สีดัชนี 256 สี | สีแท้ 24/48-bit + อัลฟา |
| ตำแหน่งจานสี | ผนวกไว้ที่ท้ายไฟล์ (EOF) (768 ไบต์) | ใกล้ส่วนหัวไฟล์ | ใกล้ส่วนหัวไฟล์ | พ่วงส่วนข้อมูล PLTE |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
สีของภาพแสดงผลกลับหัวกลับหางทั้งหมดหรือผิดเพี้ยนไปเหมือนเนกาทีฟไซเคเดลิก
สาเหตุหลัก: บล็อกจานสี VGA 256 สีที่ส่วนท้ายของไฟล์ขาดหายไปหรือถูกตัดทอน
การกู้คืน: ใช้จานสี VGA เริ่มต้นอีกครั้งหรือแปลงเป็น PNG ด้วย File2File.app PCX Converter
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
ตัวถอดรหัส PCX ประมวลผลไบต์ที่เข้ารหัสความยาวรันลงในสแกนไลน์ ซึ่งการนับความยาวรันที่ผิดรูปแบบอาจทำให้เกิดความล้นของบัฟเฟอร์ฮีป (heap buffer overflows)
เวกเตอร์การโจมตีที่ทราบ
- ความยาวรันไบต์ RLE เกินความกว้างของสแกนไลน์ ทำให้มีการเขียนหน่วยความจำนอกขอบเขตบัฟเฟอร์
- บัฟเฟอร์ล้นเมื่ออ่านระนาบเกินจำนวนระนาบที่ประกาศไว้ในส่วนหัว
- การปฏิเสธการให้บริการผ่านการคำนวณออฟเซ็ตจานสีที่เสียหาย
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: บังคับใช้ขีดจำกัดจำนวนไบต์พิกเซลต่อบรรทัดสแกนอย่างเข้มงวดระหว่างลูปคลายการบีบอัด RLE
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- ความสำคัญทางประวัติศาสตร์อันยาวนาน: รูปแบบรากฐานของการปฏิวัติวงการเกม IBM PC และแชร์แวร์ยุคแรก
- เค้าโครงหน่วยความจำแบบระนาบที่เน้นฮาร์ดแวร์ ช่วยให้สามารถคัดลอกลงในหน่วยความจำการ์ดจอ EGA/VGA ได้โดยตรง
- การบีบอัด RLE น้ำหนักเบาช่วยลดขนาดไฟล์ของภาพประกอบและไดอะแกรมที่มีสีน้อย
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- ปัจจุบัน PCX ไม่ค่อยใช้ในเวิร์กโฟลว์หลายประเภท โดยมักเลือก PNG และรูปแบบแรสเตอร์รุ่นใหม่กว่า
- จานสี VGA 256 สีถูกผนวกไว้ที่ส่วนท้ายสุดของไฟล์ ซึ่งต้องใช้การอ่านไฟล์ทั้งหมดเพื่อถอดรหัสสี
- การบีบอัดที่ไม่มีประสิทธิภาพบนภาพถ่ายที่ซับซ้อน
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- ไบต์แรกของไฟล์ PCX ทุกไฟล์คือ 0x0A เสมอ (เลขฐานสิบ 10) ซึ่งแสดงถึง ID ผู้ผลิตภายในของ ZSoft
- หากต้องการตรวจสอบว่าไฟล์ PCX 8-bit มีจานสี 256 สีหรือไม่ ให้ข้ามไปที่ 769 ไบต์จากท้ายไฟล์และตรวจสอบหาไบต์ 0x0C (เลขฐานสิบ 12)
- เกม PC คลาสสิก รวมถึง Wolfenstein 3D, DOOM และ Duke Nukem 3D จัดเก็บภาพหน้าจอโปรโมชันและศิลปะเมนูในรูปแบบ PCX
คำถามทางเทคนิคที่พบบ่อย
โปรแกรมใดเป็นผู้สร้างไฟล์ .PCX?
ZSoft PC Paintbrush ซึ่งเป็นโปรแกรมกราฟิกยอดนิยมตัวแรกสำหรับ IBM PC ในช่วงทศวรรษ 1980 และมักจะแถมมาพร้อมกับเมาส์ของ Microsoft
แปลงไฟล์ PCX รุ่นเก่าเป็น PNG หรือ JPG ได้ไหม
ได้ File2File.app สามารถแปลงเท็กซ์เจอร์เกมและงานศิลปะ PCX ในอดีตให้เป็นภาพ PNG หรือ JPG ที่ทันสมัยและคมชัดได้โดยตรงในเบราว์เซอร์ของคุณ
เหตุใดจานสีจึงอยู่ท้ายไฟล์ PCX?
เมื่อมีการเปิดตัว VGA 256 สีในปี 1988 ทาง ZSoft ได้ผนวกจานสี RGB ขนาด 768 ไบต์ไว้ที่ท้ายไฟล์โดยมีเครื่องหมาย 0x0C นำหน้า เพื่อรักษาความเข้ากันได้ย้อนหลังกับตัวถอดรหัส 16 สีรุ่นเก่า