Codebarre generator

Description

C'est un programme qui permet de générer des codeBarre Aléatoire avec options la couleur de fond, la couleur des traits, les dimensions du code barre, le lissage.

Source / Exemple :


Public Class RandomCodeBarre

    Private cBackColor As Color ' Couleur de fond
    Private cForeColor As Color ' Couleur de barres

    Private iWidth As Integer ' Largeur
    Private iHeight As Integer ' Hauteur

    Private bSmooth As Boolean

    Public Function Rendu() As Image
        Dim img As New Bitmap(iWidth, iHeight)

        Randomize() ' Graine aléatoire

        Dim i As Integer ' Etat des lignes verticales : 

        ' 1 : i définit le  blanche
        ' 2 : i définit le gris(si lissage)
        ' 3 : i définit le noir

        i = Rnd() * 3 ' 1 ou 2 ou 3
        i = Math.Max(i, 1) ' minimum : 1
        i = Math.Min(i, 3) ' maximum : 3

        While i = 2
            ' i doit etre redéfini si il est égal a 2 donc doit etre égal a 1 ou 3
            i = Rnd() * 3
            i = Math.Max(i, 1)
            i = Math.Min(i, 3)
        End While

        Dim nextiafterhold As Integer ' i suivant apres le lissage

        For x As Integer = 0 To img.Width - 1 ' pour chaque ligne verticale
            Dim bHold As Boolean ' Maintient
            Dim bchange As Boolean = False ' Changement
            Select Case 
                Case 1 ' White
                    bHold = Not CBool(CInt(Rnd() * 1)) ' boolean aleatoire qui défini si on change de blanc vert noir ou pas
                Case 2
                    i = nextiafterhold ' i=le i inverse du i précédent qui n'est pas lissage
                    bchange = True ' changement apres le lissage
                Case 3 ' Black
                    bHold = Not CBool(CInt(Rnd() * 1)) ' boolean aleatoire qui défini si on change de noir vert blanc ou pas
            End Select

            If Not bchange Then ' si pas de changement
                If Not bHold Then ' et pas de maintient
                    ' alors on change le i
                    Select Case i
                        Case 1
                            nextiafterhold = 3 ' i suivant : noir
                            i = 2
                        Case 3
                            nextiafterhold = 1 ' i suivant : blanc
                            i = 2
                    End Select
                End If
            End If

            For y As Integer = 0 To img.Height - 1 ' pour chaque ligne verticale
                Select Case i
                    Case 1 ' White
                        img.SetPixel(x, y, cForeColor) ' met un pixel blanc
                    Case 2 ' Fade
                        Dim r, g, b As Integer
                        ' Analyse de la couleur moyenne(ou milieu) de 2 couleurs(backcolor et forecolor)
                        If cForeColor.R > cBackColor.R Then
                            r = cForeColor.R - cBackColor.R
                        ElseIf cForeColor.R < cBackColor.R Then
                            r = cBackColor.R - cForeColor.R
                        Else
                            r = cBackColor.R
                        End If

                        If cForeColor.G > cBackColor.G Then
                            g = cForeColor.G - cBackColor.G
                        ElseIf cForeColor.G < cBackColor.G Then
                            g = cBackColor.G - cForeColor.G
                        Else
                            g = cBackColor.G
                        End If

                        If cForeColor.B > cBackColor.B Then
                            b = cForeColor.B - cBackColor.B
                        ElseIf cForeColor.B < cBackColor.B Then
                            b = cBackColor.B - cForeColor.B
                        Else
                            b = cBackColor.B
                        End If

                        If bSmooth Then ' si le lissage est activé
                            img.SetPixel(x, y, Color.FromArgb(r, g, b)) ' On met la couleur moyenne du backcolor et forecolor
                        Else
                            img.SetPixel(x, y, cBackColor) ' Sinon on met la couleur de fond
                        End If
                    Case 3 ' Black
                        img.SetPixel(x, y, cBackColor) ' met un pixel noir
                End Select
            Next
        Next

        Return img
    End Function

    Public Sub New(ByVal BackColor As Color, ByVal ForeColor As Color, ByVal Width As Integer, ByVal Height As Integer, ByVal Smooth As Boolean)
        iWidth = Width
        iHeight = Height

        cBackColor = BackColor
        cForeColor = ForeColor

        bSmooth = Smooth
    End Sub
End Class

Conclusion :


Laisser vos commentaires, pour l'instant je ne vois pas d'améliorations a faire.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.