Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CODEBARRE GENERATOR


Information sur la source

Catégorie :Graphique Source .NET ( DotNet ) Classé sous : Code barre, Barcod, Etiquetage Niveau : Débutant Date de création : 23/02/2008 Date de mise à jour : 01/03/2008 15:48:06 Vu / téléchargé: 7 528 / 379

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
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.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

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.

Commentaires et avis

signaler à un administrateur
Commentaire de yvesyves le 23/02/2008 19:10:07

Pour améliorer ton programme et lui donner plus d'interet tu devrais pouvoir implanter une conversion ASCII <-> code barre. http://fr.wikipedia.org/wiki/Code_universel_des_produits. Enfin tu vois..

signaler à un administrateur
Commentaire de Redman31100 le 23/02/2008 19:25:00

J'ai lu l'article mais le codage n'a pas de logique et il montre des exemples de chiffre et leur codage mais rien n'est logique donc je peux pas l'améliorer.

signaler à un administrateur
Commentaire de laridak le 24/02/2008 10:28:38

Salut
je me demande est-ce que je peut utiliser le code barre sans installer le Font Code-barres  pour pouvoir convertir de Code Code-barres a ASCI  ???

signaler à un administrateur
Commentaire de IMX le 24/02/2008 13:22:27 6/10

Salut, j'ai vu l'article de wikipedia, ce n'est effectivement pas très clair pour celui qui veut coder. J'ai fait des code-barres et je me suis servi de l'excellente page de GrandZebu sur le sujet (http://grandzebu.net/index.php).

signaler à un administrateur
Commentaire de Redman31100 le 24/02/2008 19:25:28

Laridak mon programme gère les Bitmap, rien a voir avec les fonts. Merci IMX pour le lien.

signaler à un administrateur
Commentaire de imparator_42 le 24/02/2008 23:16:47

Tu pourrais pas mettre ton projet en form de zip stp ?

signaler à un administrateur
Commentaire de Redman31100 le 24/02/2008 23:19:55

Le projet est en forme de zip(.ZIP)

signaler à un administrateur
Commentaire de bbatchakui le 28/02/2008 17:23:24

Ce code mérite d'être suffisamment commenté pour permettre développeur de comprendre ce qu'il utilise.

signaler à un administrateur
Commentaire de Redman31100 le 01/03/2008 14:04:18

BBATCHAKUI je vais le faire dans la journée. Je mettrai a jour le code avec commentaire.

signaler à un administrateur
Commentaire de waspy59 le 14/09/2008 23:36:17

elle ne fonctionne pas ta source... pas possible de l'importer.

signaler à un administrateur
Commentaire de Redman31100 le 15/09/2008 01:24:19

Si elle fonctionne, tu dois avoir un problème.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 8,954 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.