เรื่องวุ่น ๆ กับตัวหนังสือ – ตอนที่ 2 – Character vs Glyph

Character แปลตรง ๆ ตัว ก็คือ ตัวอักษร ส่วน Glyph ในความหมายของ Typography หมายถึง ภาพตัวอักษร

ถึงตรงนี้หลาย ๆ คนคงเดาออกแล้วว่าอะไรคืออะไร แต่ถ้ายังไม่รู้ ก็อ่านต่อเลยครับ

Character

คราวนี้จะมีเทคนิคัลเข้ามานิด ๆ นะครับ ไม่ต้องกังวลนะ ยังไม่ลงไปรายละเอียดครับ

สิ่งที่เราใช้แยกแยะตัวอักษรนั้นก็คือ ภาพของตัวอักษร (Glyph) และ เราเรียกตัวอักษรใด ๆ ด้วยชื่อ (Character Name) อย่างเช่น เราเรียก ก ว่า "กอไก่" หรือ A ว่า "เอ"

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

สิ่งที่คอมพิวเตอร์ใช้ ก็คือ รหัสตัวอักษร (Character Code) รหัสตัวอักษรก็คือรหัสตัวเลขที่คอมพิวเตอร์ใช้เพื่อแทนตัวอักษรนั่นเอง

โดยสรุปก็คือ Character คือ ชนิดของข้อมูลที่เก็บรหัสตัวอักษรไว้ นั่นเองครับ

แน่นอน พอมีรหัส มันก็ต้องมีการเข้ารหัส (Encoding) การเข้ารหัสจะเป็นการกำหนดว่ารหัสที่ใช้นั้นสร้างขึ้นมายังไง เช่น อาจจะเป็นตัวเลขชุดเดียว บอกว่าเป็นตัวอักษรที่เท่าไหร่ นับจากตัว A หรืออาจจะเป็นสองชุด หรืออาจจะเป็นอะไรที่พิสดารกว่านั้น

คุณสามารถสร้าง Encoding ของคุณเองก็ได้ ตราบใดที่เกมคุณสามารถถอดรหัสตัวอักษรได้แล้วแสดงผลได้ถูกต้อง

แต่ถ้าคุณคิดว่ามันไม่ฉลาดนักที่จะสร้างรหัสของตัวเอง ก็มีมาตรฐานให้ใช้อยู่มากมาย มาตรฐานที่ควรรู้จักก็ได้แก่ ASCII, ISO8859, ส่วนมาตรฐานของไทยก็มี มอก.620 เป็นต้น และมาตรฐานที่ใช้ร่วมกันทั่วโลกอย่าง Unicode (ผมจะพูดถึง Unicode ในภายหลังครับ)

เรื่องของ Encoding อยู่ในบทถัดไปครับ

Glyph

Glyph นั้นจริง ๆ อธิบายได้ง่าย มันก็คือ “ภาพ” ที่แสดงผลให้เราเห็น ตัวอักษรนั้นคือตัวอะไร

ถ้านึกไม่ออกลองดูภาพข้างล่างนะครับ

image

ภาพข้างบนดูแล้วมีตัวอักษรทั้งหมดห้าตัว ซึ่งหน้าตาไม่เหมือนกัน แต่เราแยกแยะได้ว่ามันคือตัวอักษร “ก” ครับ ที่มันหน้าตาไม่เหมือนกันเพราะมันเป็น Glyph คนละตัวกันนั่นเอง (ส่วนสาเหตุที่ Glyph เป็นคนละตัว เพราะเป็น Glyph ที่มาจากคนละฟอนท์ครับ

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

แล้วไอ้สองตัวนี้มันสัมพันธ์กันอย่างไร ?

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

Wutipong Wongsakuldej

Programmer, interested in frontend applications, music and multimedia.

Latest posts by Wutipong Wongsakuldej (see all)

Leave a Reply

Your email address will not be published. Required fields are marked *