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

อ่าน 5 นาที

X PixMap

X PixMap ( XPM ) เป็น รูปแบบไฟล์ภาพ ที่ใช้โดย X Window System สร้างขึ้นในปี 1989 โดย Daniel Dardailler และ Colas Nahaboo ที่ทำงานอยู่ที่ Bull Research Center ใน Sophia Antipolis...

X PixMap

X PixMap
โปรแกรมแก้ไขข้อความบางโปรแกรมเช่นgvimสามารถแสดงภาพ xpm ในรูปแบบกราฟิกได้
นามสกุลไฟล์
.xpm
สื่อประเภทอินเทอร์เน็ต
image/x-xpixmap [ 1 ]
พัฒนาโดยการวิจัย BULL
ประเภทของรูปแบบรูปแบบไฟล์ภาพ
ขยายจากเอ็กซ์บีเอ็ม
รูปแบบเปิด ?ใช่

X PixMap ( XPM ) เป็นรูปแบบไฟล์ภาพที่ใช้โดยX Window Systemสร้างขึ้นในปี 1989 โดย Daniel Dardailler และ Colas Nahaboo ที่ทำงานอยู่ที่Bull Research CenterในSophia Antipolisประเทศฝรั่งเศส และได้รับการปรับปรุงเพิ่มเติมในภายหลังโดย Arnaud Le Hors [ 2 ] [ 3 ]

โดยมีวัตถุประสงค์หลักเพื่อสร้างภาพพิกเซลไอคอน และรองรับพิกเซลโปร่งใสพัฒนามาจาก ไวยากรณ์ XBM รุ่นก่อนหน้า เป็น ไฟล์ ข้อความธรรมดาในรูปแบบ XPM2 หรือ ไวยากรณ์ ภาษาการเขียนโปรแกรม Cซึ่งสามารถรวมไว้ในไฟล์โปรแกรม C ได้[ 2 ]

ประวัติศาสตร์

เอ็กซ์พีเอ็ม1

รูปแบบ XPM แรก (ปี 1989) ค่อนข้างคล้ายกับรูปแบบ XBM [ a ]เมื่อเปรียบเทียบกับ XBM แล้ว XPM ใช้คำจำกัดความมาโครและตัวแปรเพิ่มเติมสำหรับสีที่มีดัชนี และแทนที่บิตด้วยอักขระเพื่ออธิบายภาพ ต่อไปนี้เป็นภาพขาวดำในรูปแบบ XPM ปี 1989

#define XFACE_format 1 #define XFACE_width 48 #define XFACE_height 48 #define XFACE_ncolors 2 #define XFACE_chars_per_pixel 1 อักขระคงที่* XFACE_colors [] = { "a" , "#ffffff" , "b" , "#000000" }; ถ่านคงที่* XFACE_pixels [] = { "abaabaababaaabaabaabaabaabaabaabaaababaabaaab" , // และอื่น ๆ สำหรับ 48 แถวที่มี 48 พิกเซล

เอ็กซ์พีเอ็ม2

XPM2 (1990) ลดความซับซ้อนของรูปแบบโดยการลบโค้ดC ทั้งหมดออก [ b ] [ c ]โครงสร้างถูกทำให้ง่ายขึ้นเป็น

! XPM2 <ค่าต่างๆ> <สี> <พิกเซล> <ส่วนขยายเพิ่มเติม (ไม่บังคับ)> 
  • ส่วนค่าจะอธิบายมิติโดยรวมของภาพคล้ายกับ#defineส่วนข้อความ
  • ส่วนสีจะกำหนดค่าต่างๆ และแนวคิดใหม่เกี่ยวกับ "ประเภท" ของสี ประเภทอาจเป็นcสำหรับ "สี" mสำหรับ "ขาวดำ" gสำหรับ "โทนสีเทา" และsสำหรับ "สัญลักษณ์" ซึ่งอธิบายว่าสีที่กำหนดไว้นั้นควรทำอะไร
  • จำนวนพิกเซลและส่วนขยายเพิ่มเติมยังคงเหมือนเดิมในรูปแบบดั้งเดิม

ไฟล์ข้างต้นที่มีความกว้าง 48 พิกเซล ความสูง 4 พิกเซล ใช้ 2 สี และมีอักขระ 1 ตัวต่อพิกเซล จะกลายเป็น:

! XPM2 48 4 2 1 ac #FFFFFF bc #000000 อบาบาบาบาอาบาบาบาบาบาบาบาบาบาอาบาบาบาอาอาบ อบาบาบาบาอาบาบาบาบาบาบาบาบาบาอาบาบาบาอาอาบ อบาบาบาบาอาบาบาบาบาบาบาบาบาบาอาบาบาบาอาอาบ อบาบาบาบาอาบาบาบาบาบาบาบาบาบาอาบาบาบาอาอาบ 

สี

นอกจากรหัสเลขฐานสิบหกแล้ว สียังสามารถเป็นชื่อสี X11 ใดก็ได้ นอกจากนี้Noneยังระบุถึงความโปร่งใสด้วย[ 4 ​​] [ 5 ]

คุณสมบัติ "เชิงสัญลักษณ์" ช่วยให้สามารถปรับสีได้ตามบริบทที่นำไปใช้ ตัวอย่างเช่น โค้ดs border c blueสามารถปรับเปลี่ยนได้บนพื้นหลังสีน้ำเงิน

การเข้ารหัสหลายสี

มีเครื่องมือหนึ่งที่ใช้เพียงตัวอักษรaถึงpสำหรับ 16 สี และเปลี่ยนไปใช้aaถึงdpสำหรับ 64 สี แต่ยังคงอ่านการเข้ารหัสตัวอักษรเดี่ยวสำหรับ 64 สีอยู่ ลองเปรียบเทียบกับ Base64

ยิ่งมีสีมากเท่าไหร่ รหัสสีก็ยิ่งใช้ตัวอักษรมากขึ้นเท่านั้น เช่นaaถึงppสำหรับ 16 × 16 = 256 สี ซึ่งไม่ค่อยมีประโยชน์สำหรับโปรแกรมแก้ไขข้อความ เพราะสตริงabอาจหมายถึงกึ่งกลางของพิกเซลที่อยู่ติดกันสองพิกเซล เช่นdabcสามารถใช้ช่องว่างเป็นรหัสสีได้ แต่ก็อาจไม่ใช่ความคิดที่ดีนัก ขึ้นอยู่กับโปรแกรมแก้ไขข้อความที่ใช้ หากไม่รวมรหัสควบคุม เครื่องหมายแบ็กสแลช และเครื่องหมายอัญประกาศ (ซึ่งจำเป็นใน XPM1 และ XPM3) จะมีตัวอักษร ASCII จำนวน 128 − 33 − 2 = 93 ตัว สำหรับรหัสสีแบบตัวอักษรเดี่ยว

ตัวอย่างแบบง่าย: อักขระ US-ASCII 90 ตัว สามารถจัดเรียงเป็น 9 ชุดที่ไม่ซ้ำกัน ชุดละ 10 ตัว ดังนั้น สตริงที่ไม่กำกวมซึ่งประกอบด้วยอักขระ 9 ตัว สามารถกำหนดสีของแต่ละพิกเซลโดยใช้ดัชนีจานสี XPM ได้มากถึง 10 9 =1,000,000,000 สี (เทียบกับGIFซึ่งรองรับเพียง 256 สี)

สำหรับ XPM2 นั้น จะเห็นได้ชัดเจนว่าภาพประกอบด้วยกี่บรรทัด โดยมีสองบรรทัดเป็นส่วนหัว และบรรทัดที่สองจะระบุจำนวนรหัสสี (2 บรรทัดในตัวอย่างข้างต้น) และจำนวนแถว (ความสูง 4 ในตัวอย่างข้างต้น) เช่น 2 + 2 + 4 = 8 บรรทัด

เอ็กซ์พีเอ็ม3

รูปแบบปัจจุบันและรูปแบบสุดท้ายคือ XPM3 (ปี 1991) มันนำตัวห่อหุ้ม C กลับมาใช้อีกครั้ง แต่แทนที่จะแสดงโครงสร้างของไฟล์อย่างชัดเจน สตริงที่จัดเก็บนั้นโดยพื้นฐานแล้วเหมือนกับ XPM2

/* XPM */ ถ่านคงที่* XFACE [] = { "48 4 2 1" , "ac #ffffff" , "bc #000000" , "abaabaababaaabaabaabaabaabaabaabaaababaabaaab" , "abaabaabaaabaababaabaabaabaabaabaaabaabaabaaab" , "อาบาบาอาบาบาอาบาอาบาบาอาบาอาบาบาบาอาบาบาบาอาอาบ" , "อาบาบาบาบาอาบาบาบาบาบาบาบาบาบาอาบาบาบาอาอาบ" };

หากบรรทัด "ค่า" มีตัวเลขหกตัวแทนที่จะเป็นสี่ตัว ค่าเพิ่มเติมเหล่านั้นจะระบุพิกัดของ "ฮอตสปอต" โดยที่0 0คือมุมบนซ้ายของกรอบที่บรรจุไอคอนและเป็นค่าเริ่มต้น "ฮอตสปอต" ใช้สำหรับตัวชี้เมาส์และแอปพลิเคชันที่คล้ายกัน

การเปรียบเทียบกับรูปแบบอื่นๆ

ไฟล์ Blarg เปิดในหน้าต่างโปรแกรม

โค้ดต่อไปนี้แสดงไฟล์ blarg เดียวกันในรูปแบบ XBM , XPM และPBM

เวอร์ชัน XBM:

#define test_width 16 #define test_height 7 static char test_bits [] = { 0x13 , 0x00 , 0x15 , 0x00 , 0x93 , 0xcd , 0x55 , 0xa5 , 0x93 , 0xc5 , 0x00 , 0x80 , 0x00 , 0x60 };
Blarg.xpm (XPM2) แสดงผลโดย XnView

เวอร์ชัน XPM2:

! XPM2 16 7 2 1 * c #000000 . c #ffffff **..*........... *.*.*........... **..*..**.**..** *.*.*.*.*.*.*.* **..*..**.*...** ...............* .............**. 

เวอร์ชัน XPM3:

/* XPM */ static char * blarg_xpm [] = { "16 ​​7 2 1" , "* c #000000" , ". c #ffffff" , "**..*..........." , "*.*.*..........." , "**..*..**.**..**" , "*.*.*.*.*.*.*.*.*" , "**..*..**.*...**" , "...............*" , ".............**." };

ไฟล์ PBM:

พี1 16 7 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 

การสนับสนุนแอปพลิเคชัน

ACDSee , Amaya , CorelDRAW , GIMP , ImageMagick , IrfanView (ปลั๊กอินรูปแบบ), PaintShop Pro , PMView , Photoshop (ปลั๊กอิน) และXnViewรวมถึงโปรแกรมอื่นๆ รองรับ XPM [ 6 ] [ 7 ] Gravatarก็รองรับ XPM เช่นกัน[ 8 ] [ 9 ]

ช่องโหว่X11 libXpm ได้รับการแก้ไขในปี 2548 [ 10 ]และอีกสามรายการในปี 2566 [ 11 ]

FFmpegเวอร์ชัน 3.3 หรือใหม่กว่าสามารถถอดรหัส XPM ได้[ 12 ]

ดูเพิ่มเติม

  • Netpbm  – ชุดเครื่องมือสำหรับการปรับแต่งภาพ
  • CLUT  – ในกราฟิกคอมพิวเตอร์ หมายถึงชุดสีที่มีให้เลือกใช้จำนวนจำกัด
  • X BitMap  – รูปแบบไฟล์

หมายเหตุ

  1. ^สำหรับคำอธิบายรูปแบบนี้แทนคู่มือ (ซึ่งหาไม่ได้ในอินเทอร์เน็ต) ให้ใช้ซอร์สโค้ดของตัวแปลง xpm-contrib (เดิมเป็นส่วนหนึ่งของ libXpm) (xpm2ppm, xpm1to3, xpm1to2c)
  2. ^การใช้ไวยากรณ์ภาษาโปรแกรมสำหรับอาร์เรย์สตริงก็เป็นที่ยอมรับเช่นกัน แต่มีเพียงไวยากรณ์ภาษา C เท่านั้นที่ได้รับการรับรอง ไวยากรณ์ "XPM2 C" ในที่สุดก็กลายเป็นรูปแบบเดียวใน XPM เวอร์ชัน 3
  3. ^สำหรับข้อมูลอ้างอิงเกี่ยวกับไวยากรณ์นี้ โปรดดูที่ https://gitlab.freedesktop.org/xorg/lib/libxpm/-/blob/master/NEWS.oldและส่วน "ประวัติ" ในคู่มือ libXpm 3.4

ดูเพิ่มเติม

  • libXpm - ไลบรารีรูปแบบไฟล์ภาพ X Pixmap (XPM)
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=X_PixMap&oldid=1276906211 "

สรุปเนื้อหา

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

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

X PixMap ( XPM ) เป็น รูปแบบไฟล์ภาพ ที่ใช้โดย X Window System สร้างขึ้นในปี 1989 โดย Daniel Dardailler และ Colas Nahaboo ที่ทำงานอยู่ที่ Bull Research Center ใน Sophia Antipolis...

เอ็กซ์พีเอ็ม1

รูปแบบ XPM แรก (ปี 1989) ค่อนข้างคล้ายกับรูปแบบ XBM [ a ] เมื่อเปรียบเทียบกับ XBM แล้ว XPM ใช้คำจำกัดความมาโครและตัวแปรเพิ่มเติมสำหรับสีที่มีดัชนี และแทนที่บิตด้วยอักขระเพื่ออธิบายภาพ ต่อไปนี้เป็นภาพขาวดำในรูปแบบ XPM ปี 1989

เอ็กซ์พีเอ็ม2

XPM2 (1990) ลดความซับซ้อนของรูปแบบโดยการลบโค้ด C ทั้งหมดออก [ b ] [ c ] โครงสร้างถูกทำให้ง่ายขึ้นเป็น

เอ็กซ์พีเอ็ม3

รูปแบบปัจจุบันและรูปแบบสุดท้ายคือ XPM3 (ปี 1991) มันนำตัวห่อหุ้ม C กลับมาใช้อีกครั้ง แต่แทนที่จะแสดงโครงสร้างของไฟล์อย่างชัดเจน สตริงที่จัดเก็บนั้นโดยพื้นฐานแล้วเหมือนกับ XPM2