มิตรภาพที่สัมผัสได้ The friendship for you can TOUCH.

มาทำฟอนต์ OpenType กันเถอะ

อาจจะเป็นความฝันของคนหลายๆ คนที่อยากมีฟอนต์ที่เป็นลายมือของตัวเอง... ผมจะมาสร้างฝันของของคุณให้เป็นจริงครับ โดยผมจะทำให้คุณเอง...

ก่อนอื่นให้คุณดาวน์โหลด ไฟล์ pdf นี้ มาก่อนครับ

แล้วเอาไปพิมพ์ลงกระดาษ 70 แกรม แล้วเขียนลายมือลงในด้านตรงข้าม แล้วเอาไปสแกนด้วยสแกนเนอร์ความละเอียดอย่างน้อย 300dpi แบบ Black and White หรือ Line Art บันทึกด้วยฟอร์แมต BMP หรือ TIF เท่านั้น แล้วส่งเมลมาที่ pongsathorns@gmail.com

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

แต่...ก่อนที่คุณจะส่งมาให้ผม โปรดอ่านเงื่อนไขเหล่านี้ก่อนครับ เพื่อประโยชน์ของตัวคุณเอง

1. ชื่อฟอนต์ทุกฟอนต์ จะถูกนำหน้าด้วยตัวอักษร PS หรือ พส. เพื่อแสดงผลงานของผมครับ
2. ฟอนต์ที่จะทำขึ้น คุณมีสิทธิ์เป็นเจ้าของสิทธิ์ 100% แต่ต้องอนุญาตให้เผยแพร่แจกจ่ายได้โดยไม่คิดค่าใช้จ่าย โดยห้ามนำไปจำหน่าย และใช้ในเชิงธุรกิจโดยไม่ได้รับอนุญาตอย่างเป็นลายลักษณ์อักษรเท่านั้น
3. ฟอนต์ที่จัดทำขึ้น ถึงแม้ว่าผมจะจัดทำให้โดยไม่คิดมูลค่า แต่คุณต้องอนุญาตให้ผมสามารถนำไปเผยแพร่โดยไม่คิดค่าใช้จ่ายได้
4. ฟอนต์ที่จัดทำขึ้น จะถูกแนบลายเซ็นดิจิตอลของผมแนบไปด้วย เพื่อเป็นสิ่งยืนยันว่าเป็นผลงานที่ผมจัดทำขึ้น
5. ฟอนต์ที่จัดทำขึ้น ไม่มีการรับประกัน การรับรองการใช้งาน และไม่มีการให้การสนับสนุนหลังแจกจ่ายแล้ว
6. ฟอนต์ที่ได้จัดทำขึ้น จะจัำดทำตามรูปแบบ OpenType มีนามสกุลเป็น TTF โดยมีคุณสมบัติเป็น Unicode และมีสคริปต์ OpenType ทำให้สามารถนำใช้กับโปรแกรมที่สนับสนุน Unicode และ OpenType ได้ทุกชนิด โดยไม่มีปัญหาเรื่องสระลอย ในส่วน OS ที่ใช้ได้นั้นจะสนับสนุนให้ใช้ได้ใน Windows 95-Me(เฉพาะ Unicode), 2000 ขึ้นไป (Unicoe+OpenType), MacOS, Linux และอื่นๆ ที่สามารถใช้งานฟอนต์ชนิด Unicode และ OpenType ได้
7. สัญญาอนุญาตของฟอนต์ จะเป็นไปตามแนวทางเงื่อนไขที่ได้กล่าวมาแล้ว โดยจะแนบไปกับฟอนต์

หากคุณยอมรับเงื่อนไขเหล่านี้ ก็ลงมือได้เลยครับ




 

Create Date : 07 มิถุนายน 2551   
Last Update : 7 มิถุนายน 2551 22:25:31 น.   
Counter : 596 Pageviews.  

เรื่องน่าปวดหัวของ Opentype

ผมได้นั่งงมกะสคริปต์ opentype มาหลายปี จนน่าจะสรุปเรื่องน่าปวดหัวของ Opentype ได้อย่างดังนี้...

๑. opentype เกิดขึ้นจากการคิดค้นของMicrosoft กับ Adobe แต่...ดูเหมือนว่าโปรแกรมทั้งสองค่ายนี้มักจะแหกกฎของอีกค่ายเสมอ... ตัวอย่างก็คือ Adobe ไม่สนับสนุนการใช้ Mark, mkmk (mark to mark) ในขณะที่ของ MS ใช้ได้ ในขณะเดียวกัน Adobe ไม่สนใจเรื่อง Script แต่ MS ให้ความสำคัญกับ non latin script มาก จนลืมไปว่า latin script ก็ยังมีความจำเป็นต้องใช้เหมือนกัน

๒. นอกจากความเข้ากันไม่ได้ของโปรแกรมของทั้ง ๒ ค่ายแล้ว ณ ขณะนี้ยังมีค่ายที่ ๓ (Third party) คือ mac และ linux ซึ่งทั้งแมคและก็ลินุกซ์นั้นสนับสนุนทั้งแบบ adobe กับ MS ได้ครบถ้วนกว่าทั้ง ๒ ค่ายที่เป็นต้นกำเินิดซะอีก แต่...ข่าวร้ายก็คือ ยังไม่มีโปรแกรมใดของลินุกซ์หรือแมคที่ support opentype ได้อย่างเต็มตัว...(ที่ยกเว้นของ adobe+MS)

๓. แม้แต่โปรแกรมบนวินโดวส์ การสนับสนุน opentype ก็ยังสนับสนุนแบบพิกลพิการ ซึ่งโปรแกรมส่วนใหญ่ใช้ไม่ได้ หรือไม่ได้ใช้

พระเจ้าช่วยกล้วยทอด....แล้วตูจะสร้างฟอนต์พวกนี้มาทำไมฟะเนี่ย




 

Create Date : 21 สิงหาคม 2550   
Last Update : 21 สิงหาคม 2550 18:17:23 น.   
Counter : 313 Pageviews.  

ตัวอย่างการเขียนสคริปต์ Opentype สำหรับใช้กับอักษรไทย

บทความนี้นำข้อมูลมาจาก f0nt.com

เพื่อให้เกิดความสะดวกในการเขียนสคริปต์นะครับ

การเขียนโอเพ่นไท้ป์ก็เหมือนการฝังโปรแกรมนั่นแหละ มีการเขียนอยู่สองรูปแบบอันได้แก่

GSUB มาจาก Glyph Substitute ใช้ในการแทนที่ Glyph ต่างๆ อย่างเช่นพิมพ์ f กับ l ติดกันจะกลายเป็น fl
GPOS มาจาก Glyph Positioning ใช้ในการปรับระยะห่าง ของ Glyph ต่างๆ เช่นเมื่อพิมพ์ A กับ W ต่อกัน จะชิดกันมากขึ้น พิมพ์ P O ติดกันห่างกันมากขึ้น

เวลาเขียน ให้กดปุ่มบวกมุมซ้ายล่าง แล้วจะขึ้น Feature Tag ขึ้นมาให้ พอเข้าไปดูแล้วจะเป็น

feature xxxx {
sub by ;
} xxxx;

ที่นี้ ตรงส่วนที่เป็นสีแดงนั่นน่ะ คือ Feature Tag ถ้าเป็นการเขียนแบบ GSUB พื้นฐานให้ใช้ liga ถ้าเป็นการเขียนแบบ GPOS ให้ใช้ kern (ความจริงมีเยอะกว่านี้ สำหรับฟอนต์ที่โปรฯกว่านี้ ลองเอาฟอนต์ชื่อ Brioso Pro ไปแกะดู แตกฉานเพราะตัวนี้แหละ)

feature liga {
[color=Red sub by [/red];
} liga;

ทีนี้ บรรทัดถัดมา ทาง fl จะกำหนดให้มาเป็น GSUB อยู่แล้ว หากต้องการจะเขียนแบบ GSUB แนะนำให้ลบออกทั้งบรรทัดนั่น แล้วพิมพ์แบบนี้แทน

lookup liga0 {
sub Glyph1 Glyph2 by Glyph3;
} liga0;
lookup liga1 {
sub Glyph4 Glyph5' by Glyph5.alt;
} liga1;

แล้วก็ ligaX หรือ liga XX ต่อไปเรื่อยๆ ส่วนที่เป็น Glyph1 นั่นคือชื่อ Glyph ซึ่งมีข้อจำกัด คือต้องมีแต่ตัวอักษรภาษาอังกฤษใหญ่-เล็ก (ใหญ่กับเล็กไม่เหมือนกันนะตัวเอง) ตัวเลขอาระบิก เครื่องหมาย . (period) และเครื่องหมาย _ (underscore) เท่านั้น รวมทั้งมีความยาวไม่เกิน 31 ตัวอักษร

วิธีตั้งชื่อ Glyph ใหม่
1. คลิกขวาที่ Glyph ที่ต้องการจะเปลี่ยนชื่อ
2. เลือก Properties
3. จากนั้นก็จะมีหน้าต่าง Glyph Properties เด้งขึ้นมา จะมีช่องหนึ่งเขียนว่า Name ข้างหน้า ใส่ชื่อใหม่ แล้วกด Apply

วิธีสร้าง Glyph ใหม่
1. ไปที่ Glyph > Generate Glyphs...
2. ใส่ชื่อของ Glyph ที่ต้องการสร้างขึ้นใหม่
3. กด OK

นอกจากนี้ ยังมีข้อห้ามอีกว่า แต่ละ lookup ต้องมีรูปแบบการเขียนที่เหมือนกันไม่งั้นมันจะเด้งกลับ ซึ่งรูปแบบการเขียน GSUB มีหลายอย่างต่อไปนี้
1. ตัวต่อตัว
sub a by a.alt
หมายถึงถ้าพิมพ์ a แล้วจะหลายเป็น Glyph a.alt
2. จาก
sub b from [b.alt1 b.alt2 b.alt3]
หมายถึงถ้าพิมพ์ Glyph b.alt1 b.alt2 หรือ b.alt3 อย่างใดอย่างหนึ่งจะกลายเป็น b
3. ควบกัน
sub f i by fi;
หมายถึงถ้าพิมพ์ f กับ i ติดกันจะกลายเป็น Glyph fi
4. แทนบางส่วน
sub b' i by b.begin
หมายถึงถ้าพิมพ์ b กับ i ติดกัน b จะกลายไปเป็น b.begin และ i จะยังคงเดิมอยู่
5. ไม่ต้องไปสนใจคู่ที่มีไอ้ตัวพวกนี้ตามหลัง
ignore sub A f' i';
sub f' i' by fi;
คือปกติพอพิมพ์ f กับ i ติดกันแล้วจะกลายเป็น fi แต่ถ้าเพิ่มบรรทัดบนเข้าไปจะหมายความว่า ถ้าพิมพ์ A ก่อนหน้าจะพิมพ์ f i ; f i จะไม่เปลี่ยนเป็น fi ตามปกติ
หมายเหตุ : ต้องมีเครื่องหมาย ' หลัง Glyph ทุกตัวที่ใช้ sub ปกติ และใส่เครื่องหมาย ' หลัง Glyph ที่มาจากข้างล่างด้วย ' ด้วย

Class
คลาสส์ (Class) แปลว่าห้อง หรือในที่นี้หมายความว่า การจัด Glyph เป็นหมวดหมู่แล้วเอามาเขียนโดยไม่ต้องเขียนสคริปต์ให้เหนื่อยหลายบรรทัด เช่นแทนที่จะเขียนว่า
sub C A B by glyph1;
sub D A B by glyph1;
ก็เขียนแค่
sub [C D] A B by glyph1;
แน่นอนว่าใช้ได้ในอีกหลายๆรูปแบบ เช่น แทนที่จะเขียนว่า
sub A' f i by A.alt;
sub B' f i by B.alt;
sub C' f i by C.alt;
...
sub Z' f i by Z.alt;
ก็เขียนแค่ว่า
sub [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]' f i by [A.alt B.alt ... Z.alt];
หรือถ้าให้ง่ายกว่านั้นอีก ก็มี hyphen เป็นตัวย่นอยู่แล้ว
sub [A-Z]' f i by [A.alt-Z.alt];
Defined Class
หมายถึง เราทำ Class ไว้ใช้งานมากกว่า 1 ที่ โดยที่ไม่ต้องไปใส่ [ ] ครอบหลังทุกที่ เพียงแต่ใช้ @ชื่อคลาส เท่านั้น
ถัดจากช่องเขียนสคริปต์ลงมาจะมีช่องสั้นๆอีกช่องหนึ่ง นั่นคือช่องเขียนคลาสส์ ให้เขียนแบบนี้
@ชื่อคลาสส์ = [Glyph1 Glyph2 Glyph3];
@ชื่อคลาสส์ = [Glyph4 Glyph5];
...

6. ไม่ต้องไปสนใจคู่ที่มีไอ้ตัวพวกนี้ตามหลังภาค 2
หลังจากเรียนและรู้จักคลาสส์มาแล้วค่อนยมาเรียนภาค 2 ได้นะ ฉะนั้น ทำความเข้าใจซะก่อน
ignore sub @LETTER a g', e g' @LETTER;
sub [a d e] g' by g.alt;
หมายถึง ถ้าพิมพ์ a d หรือ e ติดกับ g แล้ว g จะกลายเป็น g.alt แต่ถ้าพิมพ์ Glyph ที่อยู่ในคลาสส์ที่ชื่อ LETTER มาพิมพ์ติดกับ a และ g ตัว g จะไม่กลายเป็น g.alt เช่นเดียวกับถ้าพิมพ์ e g และ Glyph ที่อยู่ในคลาสส์ที่ชื่อ LETTER ติดกัน ตัว g ก็จะไม่กลายเป็น g.alt
หมายเหตุ : เช่นเดียวกับไม่ต้องไปสนใจคู่ที่มีไอ้ตัวพวกนี้ตามหลังภาคแรก ต้องใส่เครื่องหมาย ' ไว้หลัง Glyph ทั้งข้างบนทั้งข้างล่างเสมอ

เมื่อเขียนเสร็จแล้ว ให้กดปุ่ม compile (ปุ่มรูปกระดาษขาวๆสี่ห้าแผ่นแล้วมีลูกศรชี้ลงน่ะ ขี้เกียจจับภาพ) ถ้ามันเด้งกลับมาแสดงว่าเขียนผิด ให้กลับไปเช็คทวนแก้ใหม่ในส่วนที่ผิด

หมายเหตุควรจำ :
1. แต่ละบรรทัดต้องจบด้วย ; เสมอ
2. หากเด้งกลับมา กรุณาศึกษาเองว่ามันพูดถึงอะไร เพราะขี้เกียจไม่มีทางรวบรวมได้หมด

จบเรื่องการเขียนแบบ GSUB




 

Create Date : 31 กรกฎาคม 2549   
Last Update : 31 กรกฎาคม 2549 13:30:51 น.   
Counter : 567 Pageviews.  

Opentype ฤๅจะเป็นอนาคตของฟอนต์ไทย?

ผมว่าคนที่พัฒนา Opentype ในเมืองไทยคงนับคนได้ว่าไม่เกิน 10 มีน้อยคนนักที่จะรู้เรื่องนี้ ทั้งๆ ที่มันเกิดขึ้นหลายปีแล้วก็ตาม

ผมเชื่อว่า บางคนยังถามว่ามันคืออะไร...

Opentype มันทำให้ช่องว่างระหว่าง OS ต่างๆ หมดไป ในการจะใช้แบบอักษรร่วมกัน ไม่ว่าคุณจะใช้ Mac ใช้ Windows หรือ Linux ก็ตาม ก็ยังสามารถใช้แบบอักษรแบบเดียวกันได้ โดยไม่ผิดเพี้ยน

นอกจากนี้มันยังทำให้ คนพัฒนาฟอนต์สามารถเขียนโปรแกรมพิเศษเสริมความสามารถลงในตัวฟอนต์ได้อีกด้วย เช่น ถ้าเราต้องการพิมพ์คำว่า Harry potter ตัว rr จะต้องสูงตัวนึง ต่ำตัวนึง ก็ทำได้เช่นกัน

การที่มันสามารถเขียนโปรแกรมลงไปเพิ่มได้นี้ ทำให้นักพัฒนาสามารถพัฒนาความสามารถของฟอนต์นั้นๆ ได้อย่างไม่มีขีดจำกัด โดยไม่ขึ้นกับ OS ที่ใช้

แต่อย่างไรก็ตาม เราก็คงต้องมาศึกษาวิธีการเขียนสคริปต์ Opentype อยู่ดี

เอ้า...พยายามเข้า เพื่ออนาคตของชาติ




 

Create Date : 03 พฤศจิกายน 2548   
Last Update : 3 พฤศจิกายน 2548 16:28:02 น.   
Counter : 289 Pageviews.  


ทัชชี่
Location :
กรุงเทพ Thailand

[Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed

ผู้ติดตามบล็อก : 1 คน [?]




The Friendship for you can touch.
[Add ทัชชี่'s blog to your web]