'''' This code is part of Document Solutions for Imaging demos.'' Copyright (c) MESCIUS inc. All rights reserved.''ImportsSystem.IOImportsSystem.DrawingImportsGrapeCity.Documents.ImagingImportsGrapeCity.Documents.TextImports GCTEXT = GrapeCity.Documents.Text '' This sample demonstrates how to use TrueType font hinting instructions.'''' Many TrueType fonts include low-level hinting instructions.'' The original purpose of introducing hinting instructions was '' to improve the look of glyphs when the font size is comparable'' to the device resolution.'' Such instructions are also used (especially in CJK fonts)'' to reuse some glyph parts in different glyphs regardless of the font size.'' GcGraphics supports hinting instructions. To enable it, set'' TextFormat.EnableFontHinting property to true when rendering text.'' '' This sample renders a string using small sans-serif and serif fonts'' with hinting turned OFF and ON.PublicClassTrueTypeHintingFunctionGenerateImage(ByVal pixelSize AsSize,ByVal dpi AsSingle,ByVal opaque AsBoolean,OptionalByVal sampleParams AsString() = Nothing) AsGcBitmap Dim bmp = NewGcBitmap(pixelSize.Width, pixelSize.Height, True, dpi, dpi)Dim dy = dpi / 2Dim ip = NewPointF(dpi, dpi)Using g = bmp.CreateGraphics(Color.White)'' Turning anti-aliasing off makes the hinting effect on small text more obvious: g.Renderer.Aliased = True ConstsOff = "Hinting OFF: "ConstsOn = "Hinting ON: " '' Draw a string with hinting instructions off and on:Consttext = "The quick brown fox jumps over the lazy dog." Dim tf = NewTextFormat() With { .Font = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "FreeSans.ttf")), .FontSize = 12, .EnableFontHinting = False } g.DrawString(sOff + text, tf, ip) ip.Y += dy tf.FontSize = 10 g.DrawString(sOff + text, tf, ip) ip.Y += dy * 2 tf.EnableFontHinting = True tf.FontSize = 12 g.DrawString(sOn + text, tf, ip) ip.Y += dy tf.FontSize = 10 g.DrawString(sOn + text, tf, ip) ip.Y += dy * 2 '' Draw the same string with a serif font tf.Font = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "FreeSerif.ttf")) tf.EnableFontHinting = False tf.FontSize = 12 g.DrawString(sOff + text, tf, ip) ip.Y += dy tf.FontSize = 10 g.DrawString(sOff + text, tf, ip) ip.Y += dy * 2 tf.EnableFontHinting = True tf.FontSize = 12 g.DrawString(sOn + text, tf, ip) ip.Y += dy tf.FontSize = 10 g.DrawString(sOn + text, tf, ip) ip.Y += dy * 2EndUsing'' DoneReturn bmpEndFunctionEndClass