Antialiasing.vb
- ''
- '' This code is part of Document Solutions for Imaging demos.
- '' Copyright (c) MESCIUS inc. All rights reserved.
- ''
- Imports System.IO
- Imports System.Drawing
- Imports System.Numerics
- Imports GrapeCity.Documents.Drawing
- Imports GrapeCity.Documents.Text
- Imports GrapeCity.Documents.Imaging
- Imports GCTEXT = GrapeCity.Documents.Text
- Imports GCDRAW = GrapeCity.Documents.Drawing
-
- '' This sample shows the different (anti)aliasing modes of rendering text:
- '' - No anti-aliasing, very fast but poor quality (not recommended).
- '' - Fast anti-aliasing. This is the default that provides good quality and fast rendering.
- '' - Slow anti-aliasing. Highest quality but slower than the default.
- Public Class Antialiasing
- Function GenerateImage(
- ByVal pixelSize As Size,
- ByVal dpi As Single,
- ByVal opaque As Boolean,
- Optional ByVal sampleParams As String() = Nothing) As GcBitmap
-
- Dim bmp = New GcBitmap(pixelSize.Width, pixelSize.Height, True, dpi, dpi)
- Using g = bmp.CreateGraphics(Color.FromArgb(&HFFCCF2FF))
- g.Renderer.Multithreaded = True
-
- Dim text = Util.LoremIpsum()
- Dim tsize = New SizeF(bmp.Width / 2, bmp.Height / 2)
- Dim pad = 96.0F / 4
-
- Dim tfcap = New TextFormat() With
- {
- .Font = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "timesbd.ttf")),
- .FontSize = 16
- }
-
- Dim tl = g.CreateTextLayout()
- tl.DefaultFormat.Font = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "times.ttf"))
- tl.DefaultFormat.FontSize = 14
- tl.TextAlignment = TextAlignment.Justified
- tl.FirstLineIndent = 96 / 2
- tl.ParagraphSpacing = 96 / 8
- tl.MaxWidth = tsize.Width
- tl.MaxHeight = tsize.Height
- tl.MarginAll = pad
-
- Dim tloc = PointF.Empty
- Using g.PushClip(New RectangleF(tloc, tsize))
- bmp.Renderer.Aliased = True
- tl.AppendLine("No anti-aliasing (worst quality)", tfcap)
- tl.Append(text)
- tl.PerformLayout(True)
- g.DrawTextLayout(tl, tloc)
- End Using
- tloc.X += tsize.Width
- Using g.PushClip(New RectangleF(tloc, tsize))
- bmp.Renderer.Aliased = False
- bmp.Renderer.SlowAntialiasing = False
- tl.Clear()
- tl.AppendLine("Fast anti-aliasing (default quality)", tfcap)
- tl.Append(text)
- tl.PerformLayout(True)
- g.DrawTextLayout(tl, tloc)
- End Using
- tloc.X = 0
- tloc.Y += tsize.Height
- Using g.PushClip(New RectangleF(tloc, tsize))
- bmp.Renderer.Aliased = False
- bmp.Renderer.SlowAntialiasing = True
- tl.Clear()
- tl.AppendLine("Slow anti-aliasing (highest quality)", tfcap)
- tl.Append(text)
- tl.PerformLayout(True)
- g.DrawTextLayout(tl, tloc)
- End Using
- End Using
- Return bmp
- End Function
- End Class
-