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 !

Sujet : Besoin d'aide et vite si possible !!! [ Archives Visual Basic / Graphique ] (CaptainChoc)

jeudi 28 mars 2002 à 22:15:55 | Besoin d'aide et vite si possible !!!

CaptainChoc

Voilà le code source, jessaye d'enregistrer le picture3 (voir source) car quand je fait savepicture, il bug. Merci d'avance
il necessite 3 picture box et une listbox avec 6 choix dans la list.

code source:

Private Sub MERGE(INVERTED1 As Boolean, INVERTED2 As Boolean)
Dim X As Long
Dim y As Long
Dim R1 As Integer
Dim G1 As Integer
Dim B1 As Integer
Dim R2 As Integer
Dim G2 As Integer
Dim B2 As Integer

Picture3.Cls
Picture3.Height = Picture1.Height
Picture3.Width = Picture1.Width
For X = 0 To Picture1.ScaleWidth
DoEvents
For y = 0 To Picture1.ScaleHeight
'on regarde les valeurs RGB de la première image
GET_COLORS Picture1.Point(X, y), R1, G1, B1, INVERTED1
'on regarde les valeurs RGB de la seconde image
GET_COLORS Picture2.Point(X, y), R2, G2, B2, INVERTED2

Picture3.PSet (X, y), RGB((R1 + R2) / 2, (G2 + G1) / 2, (B2 + B1) / 2)
Next y
Next X
Beep
End Sub
------------------------------------------------------
Private Sub NEGATIVE_IMAGE(PICTURE As PictureBox)
Dim X As Long
Dim y As Long
Dim R1 As Integer
Dim G1 As Integer
Dim B1 As Integer
Dim R2 As Integer
Dim G2 As Integer
Dim B2 As Integer

Picture3.Cls
Picture3.Height = Picture1.Height
Picture3.Width = Picture1.Width
For X = 0 To Picture1.ScaleWidth
DoEvents
For y = 0 To Picture1.ScaleHeight
'on regarde les valeurs RGB de l'image
GET_COLORS PICTURE.Point(X, y), R1, G1, B1, True

Picture3.PSet (X, y), RGB(R1, G1, B1)
Next y
Next X
End Sub

--------------------------------------------------------
Private Sub GET_COLORS(COLOR As Long, ByRef R As Integer, ByRef G As Integer, ByRef B As Integer, INVERTED As Boolean)

'Ici on regarde les valeurs du RGB
Dim TEMP As Long
TEMP = (COLOR And 255)
R = TEMP And 255
TEMP = Int(COLOR / 256)
G = TEMP And 255
TEMP = Int(COLOR / 65536)
B = TEMP And 255

If INVERTED = True Then
R = Abs(R - 255)
G = Abs(G - 255)
B = Abs(B - 255)
End If
End Sub

Private Sub Form_Load()

End Sub
-------------------------------------------------
Private Sub List1_DblClick()

Select Case List1.ListIndex
Case 0:
MERGE False, False
Case 1:
MERGE True, False
Case 2:
MERGE False, True
Case 3:
MERGE True, True
Case 4:
NEGATIVE_IMAGE Picture1
Case 5:
NEGATIVE_IMAGE Picture2
End Select
End Sub

samedi 30 mars 2002 à 15:09:07 | Re : Besoin d'aide et vite si possible !!!

TFlorian

Bonjour ,
Je te propose une solution :
Tu a cent doute remarque que suit tu reduit la fenetre et que tu l'agrandi l'image disparait !
pour cela il y a une propriete a definir pour que windows redessine l'image lor de la restoration de l'image ::
' Active la propriété AutoRedraw.
AutoRedraw = True

De plus pour aller BEAUCOUP plus vite dans le tretement de tes image tu peut utiliser une echelle un pixel : le tres gros aventage est que tu gere en 1024*768 1024 points en horisontal et 768 en vertical contre respectivement 14760*10920 en TWIP (echel par defaul dans les projet VB)
' Définit l'échelle en pixels.
ScaleMode = vbPixels



Voici ton prog modifier par mes soins :
pour enregistere l'image DBclick sur le font de la form
l'image est alors enregistree sous c:\TEST.BMP


Private Sub MERGE(INVERTED1 As Boolean, INVERTED2 As Boolean)
Dim X As Long
Dim y As Long
Dim R1 As Integer
Dim G1 As Integer
Dim B1 As Integer
Dim R2 As Integer
Dim G2 As Integer
Dim B2 As Integer

Picture3.Cls
Picture3.Height = Picture1.Height
Picture3.Width = Picture1.Width
For X = 0 To Picture1.ScaleWidth
DoEvents
For y = 0 To Picture1.ScaleHeight
'on regarde les valeurs RGB de la première image
GET_COLORS Picture1.Point(X, y), R1, G1, B1, INVERTED1
'on regarde les valeurs RGB de la seconde image
GET_COLORS Picture2.Point(X, y), R2, G2, B2, INVERTED2

PSet (X, y), RGB((R1 + R2) / 2, (G2 + G1) / 2, (B2 + B1) / 2)
Next y
Next X
Beep
End Sub

Private Sub NEGATIVE_IMAGE(PICTURE As PictureBox)
Dim X As Long
Dim y As Long
Dim R1 As Integer
Dim G1 As Integer
Dim B1 As Integer
Dim R2 As Integer
Dim G2 As Integer
Dim B2 As Integer

Picture3.Cls
Picture3.Height = Picture1.Height
Picture3.Width = Picture1.Width
For X = 0 To Picture1.ScaleWidth
DoEvents
For y = 0 To Picture1.ScaleHeight
'on regarde les valeurs RGB de l'image
GET_COLORS PICTURE.Point(X, y), R1, G1, B1, True

PSet (X, y), RGB(R1, G1, B1)
Next y
Next X
End Sub

Private Sub GET_COLORS(COLOR As Long, ByRef R As Integer, ByRef G As Integer, ByRef B As Integer, INVERTED As Boolean)

'Ici on regarde les valeurs du RGB
Dim TEMP As Long
TEMP = (COLOR And 255)
R = TEMP And 255
TEMP = Int(COLOR / 256)
G = TEMP And 255
TEMP = Int(COLOR / 65536)
B = TEMP And 255

If INVERTED = True Then
R = Abs(R - 255)
G = Abs(G - 255)
B = Abs(B - 255)
End If
End Sub


Private Sub Form_DblClick()
'ini on sauve l'image !
SavePicture Image, "c:\TEST.BMP"
MsgBox "Image sauvee dans" & vbCrLf & App.Path
End Sub

Private Sub Form_Load()
' Définit l'échelle en pixels.
ScaleMode = vbPixels
' Active la propriété AutoRedraw.
AutoRedraw = True

' Définit l'échelle en pixels.
Picture1.PICTURE ScaleMode = vbPixels
' Active la propriété AutoRedraw.
Picture1.PICTURE AutoRedraw = True

' Définit l'échelle en pixels.
Picture2.PICTURE ScaleMode = vbPixels
' Active la propriété AutoRedraw.
Picture2.PICTURE AutoRedraw = True

' Définit l'échelle en pixels.
Picture3.PICTURE ScaleMode = vbPixels
' Active la propriété AutoRedraw.
Picture3.PICTURE AutoRedraw = True

End Sub

Private Sub List1_DblClick()

Select Case List1.ListIndex
Case 0:
MERGE False, False
Case 1:
MERGE True, False
Case 2:
MERGE False, True
Case 3:
MERGE True, True
Case 4:
NEGATIVE_IMAGE Picture1
Case 5:
NEGATIVE_IMAGE Picture2
End Select

End Sub




Voila
(tu peut peut etre travailler sur une autre form pour exoter tes images ...

TFlorian.

dimanche 31 mars 2002 à 22:55:11 | Re : Besoin d'aide et vite si possible !!!

CaptainChoc


Merci tu me sauve la vie......(lol)
Nan franchement, c impec, ca marche......merci




Cette discussion est classé dans : end, temp, integer, picture1, picture3


Répondre à ce message

Sujets en rapport avec ce message

Image qui tremble [ par ananda10 ] Voila j'ai un probleme, j'ai crée un programme qui kan on clique sur une image et on clique sur un endroit de la fenetre l'image y va mais le bug c'es image qui tremble [ par ananda10 ] voila j'ai crée un programme qui deplace une image comme dans les jeux de stratégie on clique dessus et kan on clique avec le bouton droit sur un endr réglage d'un problème de compilation [ par lecorse2b ] Salut à tous,Voici le code que j'ai écrit dans le bouton "recherche" depuis le formulaire Form4 (se composant de 2 check box et d'un bouton recheche) Problème Scrollbar et Mshflexgrid [ par allfab ] Bonjour à tous, J'écris ce message parce que j'ai un petit problème lorsque je saisis des données dans une mshflexgrid. J'utilise la méthode de place VBA Transtypage [ par Sylvain93 ] Bonjour,Je voudrais afficher des champs seulement ce qui ont un nom qui est inférieur à l'année actuelle (c'est a dire 2001,2002,2003,2004,2005). Mias Impression d'un panneau en .Net [ par dragon ] Salutj'ai présentement un code qui permet d'imprimer les composant d'une forme en .Net. Ça marche plutot bien, je l'ai prit sur le site.-------------- conversion en .NET [ par Safireo ] slut tlm !je cherche à terminer la conversion de ce code en .net.j'arrive à éliminer les erreurs mais pas à faire fonctionner le logiciel qui doit me Net Send, Aide [ par Maglore ] bonour, j'ai presque fini mon prog, reste 1 chose, le statusje suis pas capable de le faire fonctionner, mais j'ai quand meme préparé les variables (d Hook / Remplacement de touche [ par titoupit ] Bonjour,J'intercepte le flux clavier avec un Hook et je bloque la touche "." du pavé numérique.Mon problème c'est que j'aimerai remplacer cette touche fichiers et winsock [ par Jouissance ] bonjour à tous! particulièrement à toi qui lis ce message; ton coup de pouce me sera d'un précieux apport. voici mon problème : je voudrais transférer


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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 : 0,203 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é.