vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Datamatrix (2D-Code) größe an Rahmen anpassen 
Autor: Erichbru
Datum: 24.07.25 13:49



so erstelle und speichere ich den Matrix Code (bzw. die Image) dazu verwende ich diese dll

"MessagingToolkit.Barcode.dll"

 Private Sub btn_Generieren_Click(sender As Object, e As EventArgs) Handles _
   Btn_Generate.Click
        If String.IsNullOrEmpty(txtqrcode.Text) Then Return
 
        Dim generate As New MessagingToolkit.Barcode.BarcodeEncoder
        generate.BackColor = Color.White
        generate.LabelFont = New Font("Arial", 7, FontStyle.Regular)
        generate.IncludeLabel = True
        generate.CustomLabel = txtqrcode.Text
 
        Try
            picqrcode.Image = New Bitmap(generate.Encode( _
              MessagingToolkit.Barcode.BarcodeFormat.QRCode, txtqrcode.Text))
            picqrcode.SizeMode = PictureBoxSizeMode.CenterImage
 
            'Now to Datatable or Datagridview
            If Me.PicturesBindingSource.Current Is Nothing Then _
              Me.PicturesBindingSource.AddNew()
            Dim rw = DirectCast(DirectCast(Me.PicturesBindingSource.Current, _
            DataRowView).Row, PicturesRow)
            rw.Picdate = Now.ToShortDateString         ' Pfad des Datamatrix in 
            ' Spalte schreiben
            rw.Picname = txtqrcode.Text                ' Datamatrixname in 
            ' Spalte schreiben
            rw.Picpath = String.Concat(datamatrixpath.ToString & "/" & _
              txtqrcode.Text & ".png")
 
            Me.PicturesBindingSource.EndEdit()
            'Save New datarow
            dtsSave()
            'Datagridview neu zeichnen
            DataGridView1.Refresh()
            'Datamatrix ablegen
            Save_data()
 
        Catch ex As Exception
            picqrcode.Image = Nothing
        End Try
    End Sub
 
    Private Sub Save_data()
        Try
            If Me.picqrcode.Image IsNot Nothing Then
 
                Me.picqrcode.Image.Save(IO.Path.Combine(datamatrixpath, _
                  txtqrcode.Text & ".png"))
 
            End If
            Label1.Text = "Data Speicherort:"
            txtqrcode.ReadOnly = True
            Btn_Generate.Enabled = False
            FillGridWithFolderPictures()
 
            PicturesBindingSource.MoveLast()
            Datagridview1_SelectRow()
 
            Status_fertig()
            PicturesBindingSource.MoveLast()
        Catch ex As Exception
        End Try
 
    End Sub
nun gefällt mir der Ausdruck nicht besonders die Matrix Image ist nicht wie ich es wünsche in Rahmengröße

hier versuche ich es mit der SizeMode Methode nur funktioniert es nicht so wie es soll
ist oben im Bild deutlich zu erkennen links und rechts Rahmen

 picqrcode.Image = Resize_Image(New Bitmap(Image.FromFile( _
   datamatrix_TypRow.Picpath)))
                picqrcode.SizeMode = PictureBoxSizeMode.CenterImage
andere Einstellung wollen nicht passen, entweder verzerrt es das Bild und der Code kann nicht mehr ordentlich gelesen werden

wer hat da eine erfolgreiche Idee das in den Rahmen rein zu bekommen ?

hier auch noch die Resize_Image Function

  Private Function Resize_Image(ByVal _obmp As Bitmap) As Bitmap
        Dim _nbmp As New Bitmap(100, 100)
        Dim _obmp_width As Single = _obmp.Width
        Dim _obmp_height As Single = _obmp.Height
        Dim _obmp_factor As Single = _obmp_width / _obmp_height
        Do While _obmp_width > 100
            _obmp_width -= _obmp_width / 100
            _obmp_height = _obmp_width / _obmp_factor
        Loop
        Do While _obmp_height > 100
            _obmp_width -= _obmp_width / 100
            _obmp_height = _obmp_width / _obmp_factor
        Loop
        Dim _xcenter As Integer = CInt((100 - _obmp_width) / 2)
        Dim _ycenter As Integer = CInt((100 - _obmp_height) / 2)
        Using g As Graphics = Graphics.FromImage(_nbmp)
            g.InterpolationMode = Drawing2D.InterpolationMode.Bilinear
            g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
            g.DrawImage(_obmp, _xcenter, _ycenter, _obmp_width, _obmp_height)
        End Using
        Return _nbmp
    End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datamatrix (2D-Code) größe an Rahmen anpassen619Erichbru24.07.25 13:49
Re: Datamatrix (2D-Code) größe an Rahmen anpassen87Erichbru24.07.25 14:41
Re: Datamatrix (2D-Code) größe an Rahmen anpassen86Erichbru24.07.25 15:50
Re: Datamatrix (2D-Code) größe an Rahmen anpassen72Erichbru25.07.25 13:57

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel