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.
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.