begin process at 2010 03 18 10:19:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Graphique

 > 

Problème avec PSet


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec PSet

jeudi 10 juin 2004 à 10:18:12 | Problème avec PSet

nadine2511


Bonjour à tous,
j'ai écrit un code permettant de résupérer la couleur des pixels de l'image et la transformation de cette image en niveau de gris et son affichage dans une autre picture box. Derrière, je veux réaliser un seuillage automatique (c'est pour ca qque je voudrais avoir mes pixels dans un tableau) mais ici il n'y ait pas encore car j'ai des problèmes avec PSet, à moins que ce ne soit autre chose. Mais une fois sur 2 VB me dit "Nombre d'arguments incorrects ou affectation de propriété incorrecte" pour PSet. Et quand ca marche, le résultat est seulement constitué d'une partie de l'image initiale.
Picture1 et Picture2 ont les mêmes dimensions et sont toutes les 2 des pictures box.

Voici mon code:

Public Function CouleurPixel(Coul As Long)
Dim Reste As Double
Form1.Show
blue = Int(Coul / 65536)
'Print blue
green = Int((Coul - (65536 * blue)) / 256)
'Print green
red = Coul - ((blue * 65536) + (green * 256))
'Print red
Reste = (blue + red + green) Mod 3
Reste = Reste / 3
'Print Reste
CouleurPixel = (blue + red + green) / 3

If (Reste > 0.5) Then
CouleurPixel = CouleurPixel + (1 - Reste)
Else
CouleurPixel = CouleurPixel - Reste
End If

End Function

------------------------------------------------
Private Sub Form_Load()

Dim pixel(269, 461) As Long, val As Long
Picture1.Picture = LoadPicture("c:\image.bmp")
Form1.Show

With Picture1
.ScaleMode = vbPixels
.Picture = Picture1.Image
End With
SavePicture Picture1.Image, "C:\imageinitiale.bmp"

With Picture2
.ScaleMode = vbPixels
.AutoRedraw = True
.AutoSize = True
End With

' récupération des couleurs de chaque pixel de l'image
For i = 0 To Picture1.ScaleHeight-1
For j = 0 To Picture1.ScaleWidth-1
pixel(i, j) = CouleurPixel(Picture1.Point(i, j))
Next
Next

' création et affichage d'une image à niveaux de gris
For i = 0 To Picture1.ScaleHeight-1
For j = 0 To Picture1.ScaleWidth-1
val = RGB(pixel(i, j), pixel(i, j), pixel(i, j))
Picture2.PSet (i, j), val
Next
Next

End Sub

Si quelqu'un a une idée, merci de me venir en aide parce que là je patauge complètement.
Merci

Nadine2511
jeudi 10 juin 2004 à 14:42:43 | Re : Problème avec PSet

neria

Salut !

Le problème que tu as viens peut être d'une propriété de ta PictureBox : AutoRedraw, souvent elle pose des problèmes.

Pour le problème de l'argument, je pense que c'est à cause de la valeur de val qui pourrait être négative par exemple.

Sinon je te conseille d'utiliser les APIs SrtPixel et GetPixel qui sont beaucoup plus rapides.

@+ Neria


Cette discussion est classée dans : reste, image, blue, picture1, couleurpixel


Répondre à ce message

Sujets en rapport avec ce message

mettre du texte par picture1.print "hgf" en plan permanent pour pouvoir copier l'image qui est ici du texte [ par toto ] mettre du texte par picture1.print "hgf" en plan permanent pour pouvoir copier l'image qui est du texte lorsque que je veux copier l'image où il ya du sauvegarder le dessin d'un picturebox qui a été modifié [ par michel ] Voici mon problème:j'ai un controle PictureBox :Picture1Je charge une image Picture1.picture = loadpicture "c:\chemin\image.bmp"Je modifie l'image (no BLUE SCREEN!!!! (METHODE DE BLUE SCREEN) [ par Alexandre Gauthier ] Je recherche comment faire un programme qui, ouvre une image dans un picturebox normal, et en appuyant sur un command, met toutes les sorte de bleu ex PB de PictureBox qui sait pas enregistrer les modifs... [ par Jujufouq ] Je dis bien que c'est nul à résoudre, mais pourtant je n'arrive pas à comprendre le pb.Dans ma frmMain, j'ai une PictureBox Picture1. Je charge une im Redimensionnement Form/Picture [ par Florian29 ] Salut !Je fais apparaître différentes images dans une Form. J'aimerai que la form prenne la taille de l'image mais ça ne marche pas.Voici mon code:Pic SavePicture Prolbleme !!! [ par Nerdz ] Salut,J'ai fait ceciPicture1.PaintPicture Form3.Image2(0), 0, 0, 16, 16Mon image apparait bien dans Picture1mais lorsque je la sauvegarde avec SavePic


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales