Accueil > > > CODEBARRE GENERATOR
CODEBARRE GENERATOR
Information sur la source
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
- 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
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.
Historique
- 23 février 2008 12:07:23 :
- MAJ SCREENSHOT
- 01 mars 2008 15:48:07 :
- Ajout de commentaires sur le code de la classe RandomCodeBarre.
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Forum
LIST GENERICS 2LIST GENERICS 2 par JLuc01
Cliquez pour lire la suite par JLuc01
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|