DitheringInTiff.vb
C# VB
'''' This code is part of Document Solutions for Imaging demos.'' Copyright (c) MESCIUS inc. All rights reserved.''Imports System.IOImports System.DrawingImports System.Collections.GenericImports System.LinqImports System.NumericsImports GrapeCity.Documents.DrawingImports GrapeCity.Documents.TextImports GrapeCity.Documents.ImagingImports GCTEXT = GrapeCity.Documents.Text
'' This sample takes a color JPEG, And creates bilevel bitmaps from it'' using all available dithering methods. The resulting b/w images'' are added as frames to a multi-frame TIFF.'' The original color image Is added as the last page.Public Class DitheringInTiff Function GenerateImageStream( ByVal targetMime As String, ByVal pixelSize As Size, ByVal dpi As Single, ByVal opaque As Boolean, Optional sampleParams As String() = Nothing) As Stream
If Not targetMime = MimeTypes.TIFF Then Throw New Exception("This sample only supports TIFF output format.") End If
Dim pth = Path.Combine("Resources", "Images", "minerva.jpg") Dim fnt = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "FreeMono.ttf")) Dim ms = New MemoryStream() Using tw = New GcTiffWriter(ms), bmp = New GcBitmap(pth) '' Create text layout for labels: Dim tl = New TextLayout(bmp.DpiX) tl.DefaultFormat.Font = fnt tl.DefaultFormat.FontSize = 16 tl.DefaultFormat.BackColor = Color.White '' Loop through all dithering methods (starting with no dithering): Dim methods = GetType(DitheringMethod).GetEnumValues() For Each method As DitheringMethod In methods Using tbmp = bmp.Clone() '' Apply dithering: tbmp.ApplyEffect(DitheringEffect.Get(method)) '' Draw label: tl.Clear() tl.Append(method.ToString()) tl.PerformLayout(True) Using g = tbmp.CreateGraphics() g.DrawTextLayout(tl, New PointF(0, tbmp.Height - tl.ContentHeight)) End Using '' Convert to bilevel bitmap Using f = tbmp.ToBilevelBitmap() tw.AppendFrame(f) End Using End Using Next '' Add original image: tw.AppendFrame(bmp) End Using ms.Seek(0, SeekOrigin.Begin) Return ms End Function
Public ReadOnly Property DefaultMime() As String Get Return MimeTypes.TIFF End Get End PropertyEnd Class