IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6] [Graphisme] Inversion dans picturebox


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier Avatar de tomnie
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Points : 71
    Points
    71
    Par défaut [VB6] [Graphisme] Inversion dans picturebox
    voila j'ai une image en noir et blanc (fond noir / dessin blanc) chargé dans une picture box.
    jusque là no souci !
    mais je souhaiterais inversé ces couleurs et donc avoir fond blanc et dessin noir pour une impression plus agreable et moins gaspilleuse d'encre.
    est ce possible et si oui comment :

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    a part un traitement pixel par pixel sur la largeur et la hauteur de l'image, je ne connais pas d'autre solution mais les pros de l'image ont peut-être ca en magasin

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    c'est en noir et blanc ou en niveaux de gris ???

    Si c'est jsute en noir et blanc il y a eu un post recemment sur le traitement des pixels ...

    si c'est en niveaux de gris le principe serait le même mais il faudra juste rouver la foction pour trouver l'inverse du niveau de gris...

    D'ailleurs si quelqu'un à un idée de comment caluler le négatif d'une couleur en rgb par exemple je suis preneur...

  4. #4
    Membre régulier Avatar de tomnie
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Points : 71
    Points
    71
    Par défaut
    merci à vous.
    pour info c'est juste du noir en fond et une autre couleur pour le dessin (mais le plus souvent du blanc).
    tant qu'on est dans les trucs reloud : peut on agrandir de facon propre un bmp ?

  5. #5
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    -> SpaceFrog :

    Si je me souviens bien :

    Vert+Rouge+Bleu = Blanc = &HFFFFFF

    Donc le négatif doit être le complément de la couleur en question a &HFFFFFF

    (par ex : &H0000FF + &HFFFF00 = &HFFFFFF)

    sous reserve

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    bmp = bitmap <> vectoriel !!!
    si tu aimes bien le cubisme ....

  7. #7
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Logiquement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Négatif = Original xor &hFFFFFF

  8. #8
    Membre régulier Avatar de tomnie
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Points : 71
    Points
    71
    Par défaut
    bah frog, on peut otujours posé la question on sait jamais....
    sinon j'ai recuperer un code de toi pour faire une recup des pixels
    je suppose qu'une fois le traitement fait tu recoles le tout de la meme facon dans le picturebox ?

    sinon pour le coup du negatif : cela fonctionnera t il si je veux passé d'un dessin en jaune a un dessin en noir car la couleur du dessin est propre a la config locale et donc je n'y peux rien ...

  9. #9
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 117
    Points : 97
    Points
    97
    Par défaut
    Tommie, pour agrandir un bmp, les coéfficients multiple de 2 sont préférable (et surtout plus simple à faire), il te suffit dans les deux dimensions d'ajouter autant de pixels qu'il en existe entre chaque ligne. La couleur de ces pixels est la moyenne de ceux qui l'entoure. (des huits qui l'entourent pour être plus précis, ou seulement des deux sur la même ligne, ou colonne, ou comme tu veux ...)

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Yes Tom tu recolles tout de la même façon , donc le traitememnt est un peu long ...

    En plus si tu colles une moyenne des couleurs en ajoutant des lignes ...

  11. #11
    Membre régulier Avatar de tomnie
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Points : 71
    Points
    71
    Par défaut
    bon donc voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Public Sub inverse_image(Picture1 As PictureBox)
     
    largeur_p = Picture1.ScaleWidth
    hauteur = Picture1.ScaleHeight
     
    'Ligne à ligne
    For pixCy = 0 To hauteur
        'colonne par colonne
        For pixCx = 0 To largeur
       Picture1.PSet (pixCx, pixCy), Picture1.Point(pixCx, pixCy) Xor &HFFFFFF
        Next pixCx
    Next pixCy
     
    End Sub
    le probleme est qu'il ne me convertit que la premiere colonne de noir à blanc et c'est tout.
    qui peut m'expliquer, SVP !

  12. #12
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    En fait, plus généralement concernant le négatif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Négatif = Original xor maxCodage
    où maxCodage vaut la valeur la plus haute pouvant être affectée à un point pour représenter une couleur
    ex:
    Noir et blanc 1
    Niveaux de gris 128
    Couleurs 24bits 2^24-1
    Couleurs 32bits 2^32-1

  13. #13
    Membre régulier Avatar de tomnie
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Points : 71
    Points
    71
    Par défaut
    ok dark mais si mon utilisateur a choisi un jolie rose comme couleur d'origine pour son dessin quel sera sa couleur après opération ?
    mon but serait vraiment de revnir toujours à du noir et blanc

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    pour le coup de la première colonne, t'aurais pas un problème entre largeur_p et largeur ???

  15. #15
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 117
    Points : 97
    Points
    97
    Par défaut
    Et bien remplace les couleurs foncées par du noir et les couleurs claires par du blanc.

  16. #16
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 117
    Points : 97
    Points
    97
    Par défaut
    Un conseil pour le traitement, même avec des images de petite taille ca peut être assez long, tu as tout intérêt à copier dans un tabelau tous les pixels de l'image, faire les traitements que tu veux sur ce tableau et ensuite recopier le tableau dans l'image.

  17. #17
    Membre régulier Avatar de tomnie
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Points : 71
    Points
    71
    Par défaut
    ok bien vu frog
    pour les couleurs comment on fait la difference ...

  18. #18
    Membre régulier Avatar de tomnie
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Points : 71
    Points
    71
    Par défaut
    bon voila ce code fonctionne .
    en tout cas je n'ai pas eu de probleme pour le moment !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Public Sub inverse_image(Picture1 As PictureBox)
     
     
    largeur = Picture1.ScaleWidth
    hauteur = Picture1.ScaleHeight
    Dim couleur As Long
    'Ligne à ligne
    For pixCy = 0 To hauteur
        'colonne par colonne
        For pixCx = 0 To largeur
            couleur = Picture1.Point(pixCx, pixCy)
            If couleur = vbBlack Then
                Picture1.PSet (pixCx, pixCy), vbWhite
            Else
                Picture1.PSet (pixCx, pixCy), vbBlack
            End If
        Next pixCx
    Next pixCy
     
    End Sub

  19. #19
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    ben je sais pas si tu convertis les couleurs en rgb, tu fixes un seuil pour chaque composante ???

  20. #20
    Membre régulier Avatar de tomnie
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Points : 71
    Points
    71
    Par défaut
    ou la !!!!
    je comprends rien à ce que tu écris frog

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [VB6] Copie graphique excel dans picturebox (problème)
    Par Xerath dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 10/01/2008, 16h47
  2. [VB6] inserer des images dans picturebox et sauvegarder BMP
    Par todac dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/05/2007, 15h25
  3. [VB6] [Graphisme] Image de fond stretchable dans mdiform
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 17/02/2003, 11h45
  4. [VB6] [Graphisme] Arc de cercle dans un picturebox
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 04/11/2002, 18h55
  5. [VB6]fonction inverse de Hex (nombres hexadécimaux)
    Par Guigui_ dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/10/2002, 20h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo