Bits'n'Picas เป็นชุดเครื่องมือสำหรับการสร้างและแปลงบิตแมปและฟอนต์อิโมจิ
ฟังก์ชั่นฟอนต์บิตแมปสามารถเข้าถึงได้ทั้งด้วย GUI และจากบรรทัดคำสั่ง ฟังก์ชั่นฟอนต์อิโมจิสามารถเข้าถึงได้จากบรรทัดคำสั่งเท่านั้น
เปิดขวด bits'n'picas โดยไม่มีข้อโต้แย้งใด ๆ หรือด้วยคำสั่ง edit เพื่อเปิด Bitmap Font Editor GUI
java -jar BitsNPicas.jar
java -jar BitsNPicas.jar edit
java -jar BitsNPicas.jar edit myfont.sfd
รูปแบบอินพุตถูกกำหนดโดยนามสกุลไฟล์ของไฟล์อินพุต รูปแบบอินพุตที่รองรับ ได้แก่ :
.kbitx - BITS'N'PICAS 2.x รูปแบบบันทึกดั้งเดิม.kbits - BITS'N'PICAS 1.x รูปแบบบันทึกดั้งเดิม.sfd - FONTFORGE (บิตแมปเท่านั้น; ไม่รองรับโครงร่าง).bdf - รูปแบบการแจกแจงบิตแมป X11.psf , .psfu , .psf.gz , .psfu.gz - ตัวอักษรหน้าจอพีซี.suit - กระเป๋า SUTCASE MAC OS คลาสสิก (ในส้อมทรัพยากร).dfont - MAC OS Classic Font Suitcase (ใน Data Fork).nfnt - ทรัพยากรตัวอักษรคลาสสิก Mac OS (ในส้อมข้อมูล).png - SFONT หรือ RFONT ส่วนขยาย SFONT ของ Kreative Software.png , .jpg , .jpeg , .gif , .bmp - สร้างจากภาพ (GUI เท่านั้น).bin , .rom - สร้างจากไฟล์ไบนารี (GUI เท่านั้น).hex - รูปแบบ gnu unifont hex.cvt - ฟอนต์ GEOS ในรูปแบบแปลง (รวมถึง Mega Fonts).fzx - FZX โดย Andrew Owen (สำหรับ ZX Spectrum).u8m - U8/M (UTF -8 สำหรับไมโครคอมพิวเตอร์).font - Amiga Bitmap Font (สีดำและสีขาวเท่านั้น; ไม่รองรับสี).fnt - รูปแบบ windows .fnt (ไม่เหมือนกับ .fon ; แบบอักษรเวกเตอร์ไม่รองรับ).fnt , .ftx - รูปแบบ IBM DOS/V Fontx2.fnt , .mgf , .mpf - Mousepaint/Mousegraphics Font.fnt , .rbf , .rb11 , .rb12 - รูปแบบตัวอักษร rockbox.fnt , .fntz , .fnty , .cyf - รูปแบบตัวอักษร cybiko.fnt , .png - รูปแบบตัวอักษร playdate.set - ชุดอักขระตัวอักษร Apple II Hi -Res.hmzk - MI Band 2 FONT FORTION.dsf - DosStart! โดย Daniel L. Nice.sbf - Sabriel Bitmap Fontบน Mac OS X คุณสามารถเปิดหรือวางไฟล์ตัวอักษรลงในแอปพลิเคชัน Bits'n'Picas

Bits'n'picas ยังสามารถเปิดตัวอักษรอุปกรณ์เสริมโต๊ะทำงานและกระเป๋าเดินทางของระบบและย้ายไปรอบ ๆ แบบอักษรอุปกรณ์เสริมโต๊ะสคริปต์เค้าโครงแป้นพิมพ์และเสียงเช่นเดียวกับตัวค้นหาที่เคยสามารถย้อนกลับไปในวันเก่า ๆ ที่ดีของระบบ 7

อินเทอร์เฟซที่คล้ายกันยังมีอยู่สำหรับแบบอักษร GEOS

ตัวอย่าง:
java -jar BitsNPicas.jar convertbitmap -f ttf -o myfont.ttf myfont.sfd
สิ่งนี้จะแปลงการโจมตีบิตแมปในไฟล์ fontforge myfont.sfd เป็นโครงร่างในไฟล์อักษร TrueType ใหม่ myfont.ttf ตัวอย่างเช่นหากการโจมตีบิตแมปมีความสูง 16 พิกเซลโครงร่างที่สร้างขึ้นจะตรงกับกริดพิกเซลที่ขนาดตัวอักษร 16 จุด
รูปแบบอินพุตถูกกำหนดโดยนามสกุลไฟล์ของไฟล์อินพุต รูปแบบอินพุตที่รองรับ ได้แก่ :
.kbitx - BITS'N'PICAS 2.x รูปแบบบันทึกดั้งเดิม.kbits - BITS'N'PICAS 1.x รูปแบบบันทึกดั้งเดิม.sfd - FONTFORGE (บิตแมปเท่านั้น; ไม่รองรับโครงร่าง).bdf - รูปแบบการแจกแจงบิตแมป X11.psf , .psfu , .psf.gz , .psfu.gz - ตัวอักษรหน้าจอพีซี.suit - กระเป๋า SUTCASE MAC OS คลาสสิก (ในส้อมทรัพยากร).dfont - MAC OS Classic Font Suitcase (ใน Data Fork).nfnt - ทรัพยากรตัวอักษรคลาสสิก Mac OS (ในส้อมข้อมูล).png - SFONT หรือ RFONT ส่วนขยาย SFONT ของ Kreative Software.hex - รูปแบบ gnu unifont hex.cvt - ฟอนต์ GEOS ในรูปแบบแปลง (รวมถึง Mega Fonts).fzx - FZX โดย Andrew Owen (สำหรับ ZX Spectrum).u8m - U8/M (UTF -8 สำหรับไมโครคอมพิวเตอร์).font - Amiga Bitmap Font (สีดำและสีขาวเท่านั้น; ไม่รองรับสี).fnt - รูปแบบ windows .fnt (ไม่เหมือนกับ .fon ; แบบอักษรเวกเตอร์ไม่รองรับ).fnt , .ftx - รูปแบบ IBM DOS/V Fontx2.fnt , .mgf , .mpf - Mousepaint/Mousegraphics Font.fnt , .rbf , .rb11 , .rb12 - รูปแบบตัวอักษร rockbox.fnt , .fntz , .fnty , .cyf - รูปแบบตัวอักษร cybiko.fnt , .png - รูปแบบตัวอักษร playdate.set - ชุดอักขระตัวอักษร Apple II Hi -Res.hmzk - MI Band 2 FONT FORTION.dsf - DosStart! โดย Daniel L. Nice.sbf - Sabriel Bitmap Font รูปแบบเอาต์พุตถูกกำหนดโดยตัวเลือก -f รูปแบบเอาต์พุตที่รองรับ ได้แก่ :
kbitx หรือ kbnp2 - BITS'N'PICAS 2.x รูปแบบบันทึกดั้งเดิมkbits หรือ kbnp1 - bits'n'picas 1.x รูปแบบบันทึกดั้งเดิมttf หรือ truetype - Truetypeotb - Bitmap opentypebdf - รูปแบบการแจกแจงบิตแมป X11psf , psf2 , psf1 , psfgz , psf2gz , psf1gz - ตัวอักษรหน้าจอพีซีsuit สูทแบบอักษร Mac OS Classic (ในส้อมทรัพยากร)dfont - Mac OS Classic Font Suitcase (ใน Data Fork)nfnt - Mac OS Classic Font Resource (ใน Data Fork)png หรือ sfont - SDL SFONTrfont - RFONT ซึ่งเป็นส่วนขยายของ SFONT ของ Kreative Softwarehex - รูปแบบ gnu unifont hexcvt หรือ geos - ตัวอักษร GEOS ในรูปแบบแปลง (พร้อมตัวเลือกขนาดใหญ่)fzx - FZX โดย Andrew Owen (สำหรับ ZX Spectrum)u8m - U8/M (UTF -8 สำหรับไมโครคอมพิวเตอร์)font หรือ amiga - Amiga Bitmap Font (ขาวดำเท่านั้นไม่รองรับสี)fnt หรือ fnt3 - รูปแบบ Windows 3.x .fnt (ไม่เหมือนกับ .fon )fnt2 - รูปแบบ windows 2.x .fnt (ไม่เหมือนกับ .fon )fontx2 , fontx หรือ dosv - รูปแบบ IBM DOS/V Fontx2mgtk , mgf , mpf หรือ mousepaint - ชุดเครื่องมือ Mousepaint/Mousegraphics Fontrb12 - รูปแบบตัวอักษร ROCKBOX สำหรับ ROCKBOX 2.3 หรือสูงกว่าrb11 - รูปแบบตัวอักษร ROCKBOX สำหรับ ROCKBOX 2.2 หรือต่ำกว่าและ iPodlinuxcybiko - รูปแบบตัวอักษร Cybikoplaydate , playdate-allinone , playdate-fnt รูปแบบตัวอักษร playdate, all-in-one (ไฟล์. fnt)playdate-separate , playdate-fnt+png รูปแบบตัวอักษร playdate, ไฟล์. fnt และ .png แยกต่างหากhrcg หรือ set - ชุดอักขระตัวอักษร Hi -Res Apple IIhmzk - MI Band 2 FONT FORTIONsbf - Sabriel Bitmap Fontตัวเลือกเพิ่มเติมรวมถึง:
-s Regex -r Replacement -ทำการค้นหาและแทนที่ในชื่อตัวอักษร-b -ใช้เอฟเฟกต์ faux -bold-w UNITS -h UNIT -ระบุความกว้างและความสูงของพิกเซลในหน่วย EM (สำหรับรูปแบบ ttf )-i fontid -z ขนาด -ระบุตัวอักษร ID และขนาดตัวอักษร (สำหรับรูปแบบ nfnt หรือ geos ) คุณสามารถดูรายการตัวเลือกทั้งหมดโดยใช้ตัวเลือก --help
sbix ของ Apple java -jar BitsNPicas.jar extractsbix AppleColorEmoji.ttf
สิ่งนี้จะแยกภาพจาก AppleColorEmoji.ttf ลงในไดเรกทอรี AppleColorEmoji.ttf.sbix.d เป็นไฟล์ PNG จะมีไดเรกทอรีย่อยที่มีหมายเลขหลายตัวภายในไดเรกทอรีนี้ จำนวนสอดคล้องกับ พิกเซลต่อ em ของภาพภายใน (นี่ไม่จำเป็นต้องเป็นสิ่งเดียวกับความสูงของภาพ!) โครงสร้างไดเรกทอรีที่ได้จะมีลักษณะ:
AppleColorEmoji.ttf
AppleColorEmoji.ttf.sbix.d
20
glyph_43.png
glyph_44.png
...
32
glyph_43.png
glyph_44.png
...
...
java -jar BitsNPicas.jar extractsvg EmojiOne.otf
สิ่งนี้จะแยกภาพ SVG จาก EmojiOne.otf ลงในไดเรกทอรี EmojiOne.otf.svg.d เป็นไฟล์ SVG ที่ไม่บีบอัด (หากข้อมูล SVG ภายในตัวอักษรถูกบีบอัดมันจะถูกบีบอัด) โครงสร้างไดเรกทอรีที่ได้จะมีลักษณะ:
EmojiOne.otf
EmojiOne.otf.svg.d
glyph_2.svg
glyph_3.svg
...
CBDT / CBLC ของ Google java -jar BitsNPicas.jar extractcbdt NotoColorEmoji.ttf
สิ่งนี้จะแยกภาพ PNG จาก NotoColorEmoji.ttf ลงในไดเรกทอรี NotoColorEmoji.ttf.cbdt.d จะมีไดเรกทอรีย่อยที่มีหมายเลขหนึ่งหรือมากกว่าภายในไดเรกทอรีนี้ จำนวนเป็นเพียงดัชนีของบันทึก bitmapsize และไม่มีนัยสำคัญอื่น ๆ โครงสร้างไดเรกทอรีที่ได้จะมีลักษณะ:
NotoColorEmoji.ttf
NotoColorEmoji.ttf.cbdt.d
0000
glyph_4.png
glyph_5.png
....
metadata.txt
....
fontinfo.txt
ไฟล์ metadata.txt ภายในแต่ละไดเรกทอรีย่อยแสดงค่าทั้งหมดจากโครงสร้างข้อมูลต่างๆภายในตาราง CBLC และ CBDT ไฟล์ fontinfo.txt เพียงแสดงค่าอื่น ๆ จากตารางอื่น ๆ ที่ไม่เกี่ยวข้องเพื่อความสะดวก (เนื่องจากตัวแก้ไขตัวอักษรจำนวนมากไม่สามารถเปิดฟอนต์ด้วยตาราง CBDT / CBLC เพื่อให้คุณค้นหาค่าเหล่านี้เนื่องจากขาดตาราง glyf / loca )
COLR / CPAL ของ Microsoft ปัจจุบันรูปแบบ COLR / CPAL ของ Microsoft ยังไม่รองรับ
ในการสร้างแบบอักษรอิโมจิ/สีคุณจะต้องมีสองสิ่ง:
sbix ของ Apple java -jar BitsNPicas.jar injectsbix MyEmoji.ttf
สิ่งนี้จะใช้ไฟล์ font truetype MyEmoji.ttf และรูปภาพในไดเรกทอรี MyEmoji.ttf.sbix.d และสร้างไฟล์ฟอนต์ Truetype ใหม่ MyEmoji.ttf.sbix.ttf พร้อมรูปภาพที่ฝังอยู่ในตาราง sbix จากนั้นคุณสามารถเปลี่ยนชื่อไฟล์นี้ได้หากคุณต้องการ ชื่อของแต่ละไดเรกทอรีย่อยภายในไดเรกทอรีภาพจะต้องเป็น พิกเซลต่อ em ของภาพที่มีอยู่ (นี่ไม่จำเป็นต้องเป็นสิ่งเดียวกับความสูงของภาพ!) ชื่อไฟล์ของแต่ละภาพภายในแต่ละไดเรกทอรีย่อยจะต้องเป็นแบบฟอร์ม glyph_123.png (พร้อมดัชนี glyph ในทศนิยม) หรือ char_ABCD.png (พร้อมจุดรหัส Unicode ใน hexadecimal) ตำแหน่งด้านล่างซ้ายของแต่ละภาพจะถูกกำหนดโดยพิกัด X และ Y ขั้นต่ำของ Glyph ที่สอดคล้องกันในไฟล์ Font TrueType (สำหรับอีโมจิสีของแอปเปิ้ลสิ่งนี้เพิ่งเกิดขึ้นเป็น 0,0)
java -jar BitsNPicas.jar injectsvg MyEmoji.otf
สิ่งนี้จะใช้ไฟล์ฟอนต์ opentype MyEmoji.otf และภาพ SVG ในไดเรกทอรี MyEmoji.otf.svg.d และสร้างไฟล์ฟอนต์ Opentype ใหม่ MyEmoji.otf.svg.otf พร้อมรูปภาพที่ฝังอยู่ในตาราง SVG จากนั้นคุณสามารถเปลี่ยนชื่อไฟล์นี้ได้หากคุณต้องการ ชื่อไฟล์ของแต่ละภาพภายในไดเรกทอรีรูปภาพจะต้องเป็นรูปแบบ glyph_123_456.svg (สำหรับช่วงของ glyphs ด้วยดัชนี glyph ในทศนิยม) char_ABCD.svg glyph_123.svg
สำหรับดัชนี Glyph แต่ละตัวที่แมปกับเอกสาร SVG จะต้องมีองค์ประกอบในเอกสารนั้นที่มี ID ที่สอดคล้องกับดัชนี Glyph นั้น (เช่น id="glyph123" สำหรับดัชนี Glyph 123) เนื่องจากคุณอาจไม่ทราบดัชนี Glyph เมื่อระบุจุดรหัสในชื่อไฟล์ภาพคุณสามารถใช้ id="glyph{{{0}}}" และจะถูกแทนที่ด้วยดัชนี Glyph ที่เหมาะสมในระหว่างกระบวนการฉีด
หากคุณระบุตัวเลือก -z ก่อนชื่อไฟล์ตัวอักษรข้อมูล SVG จะถูกบีบอัดโดยใช้ GZIP Microsoft อ้างว่ารูปแบบ SVG-in-Opentype รองรับสิ่งนี้และความพร้อมใช้งานของ Emojione เวอร์ชันที่มี GZIP ที่ถูกบีบอัด SVG glyphs ปรากฏขึ้นเพื่อสำรองข้อมูลนี้ อย่างไรก็ตามฉันไม่สามารถรับแบบอักษรด้วย glyphs SVG ที่บีบอัด GZIP เพื่อทำงานแม้ใน Firefox เวอร์ชันล่าสุดของการเขียนนี้ดังนั้นฉันไม่แนะนำสิ่งนี้
หากคุณมีภาพที่ไม่ใช่ SVG จำนวนมากที่คุณต้องการฉีดโดยใช้รูปแบบนี้คุณสามารถสร้าง SVGs ด้วยภาพฝังตัวได้อย่างง่ายดายโดยใช้คำสั่งดังต่อไปนี้:
java -jar BitsNPicas.jar imagetosvg -x 0 -y -700 -w 800 -h 800 myimages/*.png
สิ่งนี้จะสร้างไฟล์ SVG ที่เกี่ยวข้องสำหรับไฟล์อิมเมจที่ไม่ใช่ SVG แต่ละไฟล์ที่ระบุ ตัวเลือก -x , -y , -w , -h ระบุตำแหน่งและขนาดของภาพในหน่วย EM โปรดทราบว่า SVG Y-Axis กลับด้านจากแกน y truetype ดังนั้นการประสาน Y เชิงลบจึงอยู่ เหนือ ระดับพื้นฐานและพิกัด Y ที่เป็นบวกอยู่ ต่ำกว่า พื้นฐาน
CBDT / CBLC ของ Google java -jar BitsNPicas.jar injectcbdt MyEmoji.ttf
สิ่งนี้จะใช้ไฟล์ font truetype MyEmoji.ttf และรูปภาพ PNG ในไดเรกทอรี MyEmoji.ttf.cbdt.d และสร้างไฟล์ font truetype ใหม่ MyEmoji.ttf.cbdt.ttf พร้อมรูปภาพที่ฝังอยู่ในตาราง CBDT จากนั้นคุณสามารถเปลี่ยนชื่อไฟล์นี้ได้หากคุณต้องการ จะต้องมีไดเรกทอรีย่อยสำหรับแต่ละขนาดบิตแมป ชื่อของไดเรกทอรีย่อยไม่สำคัญ ชื่อไฟล์ของแต่ละภาพภายในแต่ละไดเรกทอรีย่อยจะต้องเป็นแบบฟอร์ม glyph_123.png (พร้อมดัชนี glyph ในทศนิยม) หรือ char_ABCD.png (พร้อมจุดรหัส Unicode ใน hexadecimal)
ขอแนะนำให้แต่ละไดเรกทอรีย่อยจะมีไฟล์ metadata.txt ของค่าที่จะใช้สำหรับโครงสร้างข้อมูลต่างๆภายในตาราง CBLC และ CBDT แนะนำต่อไปนี้อย่างน้อยที่สุด:
horiAscender: *ascent in pixels (normally positive)*
horiDescender: *descent in pixels (normally negative)*
horiWidthMax: *max character width in pixels*
vertAscender: *ascent in pixels (normally positive)*
vertDescender: *descent in pixels (normally negative)*
vertWidthMax: *max character width in pixels*
ppemX: *pixels per em*
ppemY: *pixels per em*
glyph: *glyph index*
height: *image height in pixels*
width: *image width in pixels*
bearingX: *x offset in pixels*
bearingY: *y offset in pixels (positive is above the baseline)*
advance: *character width in pixels*
endGlyph
สำหรับดัชนี Glyph คุณยังสามารถใช้ char_ABCD (ด้วยจุดรหัส Unicode ใน hexadecimal) หรือ * เพื่อครอบคลุม glyphs ทั้งหมดที่ไม่ได้ระบุไว้เป็นอย่างอื่น ฟิลด์ที่เกี่ยวข้องกับโครงสร้างข้อมูลเอง (ช่วงการชดเชยจำนวนและช่วงดัชนี Glyph รวมถึงสิ่งใดก็ตามที่เกี่ยวข้องกับประเภทของดัชนีย่อยประเภทต่างๆ) ไม่จำเป็นต้องระบุจะถูกละเว้นหากระบุและจะคำนวณโดยอัตโนมัติ (เฉพาะดัชนี subtable รูปแบบ 1 และรูปแบบข้อมูลบิตแมป 17, 18 และ 19 จะถูกนำมาใช้โดยไม่คำนึงถึงข้อมูลเมตาที่ระบุไว้)
โดยค่าเริ่มต้น injectcbdt จะลบตาราง glyf , loca , CFF หรือ CFF2 ใด ๆ จากตัวอักษร ในการรักษาตารางเหล่านี้ให้ระบุตัวเลือก -g ก่อนชื่อไฟล์ตัวอักษร
COLR / CPAL ของ Microsoft ปัจจุบันรูปแบบ COLR / CPAL ของ Microsoft ยังไม่รองรับ