Option Strict On Imports System.Drawing Public Class BarCode128B Private sign_dictonary As New Dictionary(Of Char, String) ''' ''' Lädt die Zeichen in das Wörterbuch ''' ''' Private Sub Load_Dictonary() Add(" ", "bb w bb ww bb ww") Add("!", "bb ww bb w bb ww") Add("""", "bb ww bb ww bb w") Add("#", "b ww b ww bb www") Add("$", "b ww b www bb ww") Add("%", "b www b ww bb ww") Add("&", "b ww bb ww b www") Add("'", "b ww bb www b ww") Add("(", "b www bb ww b ww") Add(")", "bb ww b ww b www") Add("*", "bb ww b www b ww") Add("+", "bb www b ww b ww") Add(",", "b w bb ww bbb ww") Add("-", "b ww bb w bbb ww") Add(".", "b ww bb ww bbb w") Add("/", "b w bbb ww bb ww") Add("0", "b ww bbb w bb ww") Add("1", "b ww bbb ww bb w") Add("2", "bb ww bbb ww b w") Add("3", "bb ww b w bbb ww") Add("4", "bb ww b ww bbb w") Add("5", "bb w bbb ww b ww") Add("6", "bb ww bbb w b ww") Add("7", "bbb w bb w bbb w") Add("8", "bbb w b ww bb ww") Add("9", "bbb ww b w bb ww") Add(":", "bbb ww b ww bb w") Add(";", "bbb w bb ww b ww") Add("<", "bbb ww bb w b ww") Add("=", "bbb ww bb ww b w") Add(">", "bb w bb w bb www") Add("?", "bb w bb www bb w") Add("@", "bb www bb w bb w") Add("A", "b w b www bb www") Add("B", "b www b w bb www") Add("C", "b www b www bb w") Add("D", "b w bb www b www") Add("E", "b www bb w b www") Add("F", "b www bb www b w") Add("G", "bb w b www b www") Add("H", "bb www b w b www") Add("I", "bb www b www b w") Add("J", "b w bb w bbb www") Add("K", "b w bb www bbb w") Add("L", "b www bb w bbb w") Add("M", "b w bbb w bb www") Add("N", "b w bbb www bb w") Add("O", "b www bbb w bb w") Add("P", "bbb w bbb w bb w") Add("Q", "bb w b www bbb w") Add("R", "bb www b w bbb w") Add("S", "bb w bbb w b www") Add("T", "bb w bbb www b w") Add("U", "bb w bbb w bbb w") Add("V", "bbb w b w bb www") Add("W", "bbb w b www bb w") Add("X", "bbb www b w bb w") Add("Y", "bbb w bb w b www") Add("Z", "bbb w bb www b w") Add("[", "bbb www bb w b w") Add("\", "bbb w bbbb w b w") Add("]", "bb ww b wwww b w") Add("^", "bbbb www b w b w") Add("_", "b w b ww bb wwww") Add("`", "b w b wwww bb ww") Add("a", "b ww b w bb wwww") Add("b", "b ww b wwww bb w") Add("c", "b wwww b w bb ww") Add("d", "b wwww b ww bb w") Add("e", "b w bb ww b wwww") Add("f", "b w bb wwww b ww") Add("g", "b ww bb w b wwww") Add("h", "b ww bb wwww b w") Add("i", "b wwww bb w b ww") Add("j", "b wwww bb ww b w") Add("k", "bb wwww b ww b w") Add("l", "bb ww b w b wwww") Add("m", "bbbb w bbb w b w") Add("n", "bb wwww b w b ww") Add("o", "b www bbbb w b w") Add("p", "b w b ww bbbb ww") Add("q", "b ww b w bbbb ww") Add("r", "b ww b ww bbbb w") Add("s", "b w bbbb ww b ww") Add("t", "b ww bbbb w b ww") Add("u", "b ww bbbb ww b w") Add("v", "bbbb w b ww b ww") Add("w", "bbbb ww b w b ww") Add("x", "bbbb ww b ww b w") Add("y", "bb w bb w bbbb w") Add("z", "bb w bbbb w bb w") Add("{", "bbbb w bb w bb w") Add("|", "b w b w bbbb www") Add("}", "b w b www bbbb w") Add("~", "b www b w bbbb w") End Sub ''' ''' Verkürzung von sign_dictonary.Add() ''' ''' ''' ''' Private Sub Add(ByVal [char] As String, ByVal code As String) sign_dictonary.Add(CChar([char]), code) End Sub ''' ''' Konvertiert eine Zeichenfolge in Black and White Stripes ''' ''' Zu Übersetzender Text ''' ''' Private Function Convert(ByVal text As String) As String Load_Dictonary() Dim returnstring As String = "" For Each cr As Char In text returnstring = returnstring & " " & sign_dictonary(cr) Next 'Beginncode & TextCode & StopCode Return ("bb w b ww bbb ww" & returnstring.Substring(1, returnstring.Length - 1) & "bb www bbb w b w bb").Replace(" ", "") End Function ''' ''' Kodiert eine Zeichenfolge in einen 128B-Barcode ''' ''' Der darzustellende Text ''' Die Höhe des Barcodes ''' ''' Public Function Encode(ByVal text As String, ByVal height As Integer) As Bitmap Dim kombination As String = Convert(text) Dim bmp As New Bitmap((kombination.Length - 1), height) Dim gr As Graphics = Graphics.FromImage(bmp) With gr .SmoothingMode = Drawing2D.SmoothingMode.AntiAlias .TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias .PixelOffsetMode = Drawing2D.PixelOffsetMode.HighQuality .InterpolationMode = Drawing2D.InterpolationMode.HighQualityBilinear .CompositingQuality = Drawing2D.CompositingQuality.HighQuality End With For u As Integer = 0 To kombination.Length - 1 If kombination.Substring(u, 1) = "w" Then gr.FillRectangle(Brushes.White, New Rectangle(u, 0, 1, height)) End If If kombination.Substring(u, 1) = "b" Then gr.FillRectangle(Brushes.Black, New Rectangle(u, 0, 1, height)) End If Next Return bmp End Function End Class