のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

Fonts

TypeSquareの文字を表示する。

はてなブログで、TypeSquare(Webフォント)を表示させる方法です。カスタマイズ>ヘッダ>タイトルしたへ、以下のようなスクリプトをコピー&ペーストする。 スクリプトは、TypeSquareのページで取得する。*1 <script type="text/javascript" src="//typesquare.com/accessor/script/typesquare.js?ABCD0123456789&fadein=10" charset="utf-8"></script> カスタマイズ>デザインCSSに以下のような設定…

CharMap

namespace SharpFont.Internal { [StructLayout(LayoutKind.Sequential)] internal class CharMapRec { internal IntPtr face; internal Encoding encoding; internal PlatformId platform_id; internal ushort encoding_id; } } namespace SharpFont { publ…

配列フィールドは ByValArray または SafeArray と組で使用してください。

LPArrayのところで、全て同じエラーになる。 LPArrayをByValArrayに変えると、動くようになる。 読みこむだけなら、これで問題なさそうに思える。 この感じの行があると、マーシャリングができないようだ。 [MarshalAs(UnmanagedType.LPArray, SizeConst = 4…

配列フィールドは ByValArray または SafeArray と組で使用してください。

> SharpFont.dll!SharpFont.PInvokeHelper.PtrToStructure<SharpFont.TrueType.Internal.HeaderRec>(System.IntPtr reference) 行 43 SharpFont.dll!SharpFont.TrueType.Header.Reference.set(System.IntPtr value) 行 205 SharpFont.dll!SharpFont.TrueType.Header.Header(System.IntPtr reference)</sharpfont.truetype.internal.headerrec>…

マーシャリングできません: 無効なマネージ/アンマネージ型の組み合わせです。

以下の試しのコードを実行したところ、マーシャリングのエラーになった。 namespace Examples { public partial class ExampleForm : Form { private void listBoxFont_SelectedIndexChanged(object sender, EventArgs e) { fontFace = new Face(lib, Path.C…

Faceクラス

namespace SharpFont { public sealed class Face : IDisposable { private IntPtr reference; private FaceRec rec; private Library parentLibrary; public Face(Library library, string path, int faceIndex) : this(library) { IntPtr reference; Error…

'System.TypeLoadException'

型 'System.TypeLoadException' のハンドルされていない例外が mscorlib.dll で発生しました 追加情報:型 'SharpFont.TrueType.Internal.HeaderRec' の フィールド 'Created' をマーシャリングできません: 無効なマネージ/アンマネージ型の組み合わせです。 …

GetSfntTable

public object GetSfntTable(SfntTag tag) { IntPtr tableRef = FT.FT_Get_Sfnt_Table(Reference, tag); if (tableRef == IntPtr.Zero) return null; switch (tag) { case SfntTag.Header: return new Header(tableRef); case SfntTag.HorizontalHeader: ret…

composite glyph

1655 /* otherwise, load a composite! */ 1656 else if ( loader->n_contours == -1 ) 1657 { 1658 FT_UInt start_point; 1659 FT_UInt start_contour; 1660 FT_ULong ins_pos; /* position of composite instructions, if any */ 1661 1662 1663 start_poi…

FT_DEFINE_SFNT_INTERFACE

565 #ifndef FT_CONFIG_OPTION_PIC 566 567 #define FT_DEFINE_SFNT_INTERFACE( \ 568 class_, \ 569 goto_table_, \ 570 init_face_, \ 571 load_face_, \ 572 done_face_, \ 573 get_interface_, \ 574 load_any_, \ 575 load_head_, \ 576 load_hhea_, \ …

ebdt

460 FT_DEFINE_SFNT_INTERFACE( 461 sfnt_interface, 462 tt_face_goto_table, 463 464 sfnt_init_face, 465 sfnt_load_face, 466 sfnt_done_face, 467 sfnt_get_interface, 468 469 tt_face_load_any, 470 471 tt_face_load_head, 472 tt_face_load_hhea, 4…

ebdt

static void ShowGlyph(FILE *ttf,long offset,long len,int imageFormat, struct ttfinfo *info) { int h,w,sbX,sbY,advance; int i,j,k,ch; long here; if ( imageFormat!=1 && imageFormat!=2 ) return; here = ftell(ttf); fseek(ttf,info->bitmapdata_s…

showttf

fontforge/contrib/fonttools/showttf.c

ttx -t EBDT -z bitwise

$ ttx -t EBDT -z bitwise MS-Gothic.ttf Dumping "MS-Gothic.ttf" to "MS-Gothic#7.ttx"... Dumping 'EBDT' table... Traceback (most recent call last): File "/Users/m_fujii/bin/FDK/Tools/osx/../SharedData/FDKScripts/ttx.py", line 13, in <module> ttx.mai</module>…

ttx -t EBDT -z row

$ ttx -t EBDT -z row MS-Gothic.ttf Dumping "MS-Gothic.ttf" to "MS-Gothic#5.ttx"... Dumping 'EBDT' table... Traceback (most recent call last): File "/Users/m_fujii/bin/FDK/Tools/osx/../SharedData/FDKScripts/ttx.py", line 13, in <module> ttx.main(sy</module>…

ttx EBDT

$ ttx -t EBDT -z raw MS-Gothic.ttf Dumping "MS-Gothic.ttf" to "MS-Gothic#2.ttx"... Dumping 'EBDT' table... $ vi MS-Gothic#2.ttx <ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="2.5"> <EBDT> <header version="2.0"/> <strikedata index="0"> </strikedata></header></ebdt></ttfont>

otc2otf

$ otc2otf msgothic.ttc Input font: msgothic.ttc Output font: MS-Gothic.ttf Output font: MS-UIGothic.ttf Output font: MS-PGothic.ttf Done$ ttx MS-Gothic.ttf Dumping "MS-Gothic.ttf" to "MS-Gothic.ttx"... Dumping 'GlyphOrder' table... Dumping…

truetype cmap format 4

<cmap> <tableVersion version="0"/> <cmap_format_4 platformID="0" platEncID="3" language="0"> <map code="0x20" name="uni00A0"/> <map code="0x21" name="exclam"/> <map code="0x22" name="quotedbl"/> <map code="0x23" name="numbersign"/></map></map></map></map></cmap_format_4></tableversion></cmap>

truetype cmap format 2

/** * Read a format 2 subtable. * * @param data the data stream of the to be parsed ttf font * @param numGlyphs number of glyphs to be read * @throws IOException If there is an error parsing the true type font. */ protected void processSub…

TrueType OpenType ファイル構造 その1

$ xxd arial.ttf | head 00000000: 0001 0000 0019 0100 0004 0090 4453 4947 ............DSIG 00000010: b77e 536a 000d dc30 0000 1adc 4744 4546 .~Sj...0....GDEF 00000020: b13f b3a1 000c 4b24 0000 0334 4750 4f53 .?....K$...4GPOS 00000030: 83c6 …

ARG_1_AND_2_ARE_WORDS

if ($flags & self::ARG_1_AND_2_ARE_WORDS) { if ($flags & self::ARGS_ARE_XY_VALUES) { $e = $font->readInt16(); $f = $font->readInt16(); } else { $point_compound = $font->readUInt16(); $point_component = $font->readUInt16(); } } else { if ($…

spot

spot -tGSUB=7 KozGoKanaNK-Heavy.otf$ spot -h Usage: spot [-u|-h|-ht|-r] [-n|-nc|-G|-T|-F] [-f] [-V] [-m] [-d][-i<ids>] [-o<offs>] [-t<tags>|-P<featuretags>] [-p<policy>] [-@ <ptsize>] <fontfile>+ OR: spot -X <scriptfile> Options: -u print usage information -h print usage and help information -ht pri…</scriptfile></fontfile></ptsize></policy></featuretags></tags></offs></ids>

ttx

$ ttx usage: ttx [options] inputfile1 [... inputfileN] TTX 2.5 -- From OpenType To XML And Back If an input file is a TrueType or OpenType font file, it will be dumped to an TTX file (an XML-based text format). If an input file is a TTX fi…

glyph composite

glyf - Glyf Data This table contains information that describes the glyphs in the font in the TrueType outline format. Information regarding the rasterizer (scaler) refers to the TrueType rasterizer. Each glyph begins with the following he…

fontforge error Missing Points at Extrema

Self Intersectiong フォント内にパス同士が交差する箇所があるとき Wrong Direction フォント作成のルールである「外側の輪郭は時計回り、内側の輪郭は反時計回り」に反しているとき Missing Points at Extrema 点の個数の上限を越えたとき Non-integral co…

hb-view unicode

$ cp /usr/share/fonts/truetype/tlwg/Garuda.ttf $ printf '\ue01' | hb-view ./Garuda.ttf $ printf '\ue01' | hb-shape ./Garuda.ttf [uni0E01=0+641]

hb-shape --help-all

u01@vm01:~$ hb-shape --help-all Usage: hb-shape [OPTION...] [FONT-FILE] [TEXT]Help Options: -h, --help Show help options --help-all Show all help options --help-font Options controlling the font --help-text Options controlling the input te…

hb-view --help-all

u01@vm01:~$ hb-view --help-all Usage: hb-view [OPTION...] [FONT-FILE] [TEXT]Help Options: -h, --help Show help options --help-all Show all help options --help-font Options controlling the font --help-text Options controlling the input text…

shape_closure_consumer_t用 main

①ー2:shape_closure_consumer_t用 110 int 111 main (int argc, char **argv) 112 { 113 main_font_text_t<shape_closure_consumer_t, FONT_SIZE_NONE, 0> driver; 114 return driver.main (argc, argv); 115 } ②共通 50 template <typename consumer_t, int default_font_size, int subpixel_bits> 51 struct main_font_text_t…</typename></shape_closure_consumer_t,>

shape_consumer_t用 main

hb_shape_full() at hb-shape.cc:374 0x7ffff7b413df shape_options_t::shape() at options.hh:248 0x4049bc shape_consumer_t<view_cairo_t>::consume_line() at shape-consumer.hh:61 0x4053b2 main_font_text_t<shape_consumer_t<view_cairo_t>, 256, 8>::main() at main-font-text.hh:80 0x4051eb main</shape_consumer_t<view_cairo_t></view_cairo_t>…