Sauvegarde d'image sous vb6 problème de "boucle" [Résolu]

Horace7 6 Messages postés dimanche 26 avril 2009Date d'inscription 28 décembre 2009 Dernière intervention - 28 déc. 2009 à 13:05 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 28 déc. 2009 à 22:49
Bonjour,

Je cherche 2 ou 3 codes dans des sources mis à disposition sur le forum... Je suis arrivé au point d'utiliser :
sauvegarder:
dlg.Filter = "images bmp|*.bmp|images wmf|*.wmf|icones|*.ico|curseurs|*.cur|fichiers rle|*.rle|metafichiers etendus|*.emf|images gif|*.gif|images jpg|*.jpg|images jpeg|*.jpeg|images GD Picture|*.gdp|tous|*.*"
dlg.Action = 2
If dlg.FileName = "" Then GoTo sauvegarder
        
nom$ = dlg.FileName
Call SavePicture(Picture1.Image, nom$)


Mais le problème c'est qu'il ne veut pas Annuler... Car quand je fait annuler une autre fenêtre apparaît, de même pour la croix...

Donc est-il possible de me corriger ce petit problème ?? Pour que mon programme soit fiable ?

D'avance Merci !


PS : Et si vous avez le temps que pensez vous de :
Sub coulchange(toto As PictureBox, coulanc, coulnouv)
  Dim htoto As Long, X As Integer, Y As Integer, X1 As Integer, Y1 As Integer
  Dim coulanc0 As Long, crnewcolor As Long, couleuranc0 As Long
  toto.AutoRedraw = True
  crnewcolor = coulnouv
  mbrush = CreateSolidBrush(crnewcolor)
  htoto = toto.hdc
  SelectObject toto.hdc, mbrush
  X1 toto.ScaleWidth: Y1 toto.ScaleHeight
  For X = 0 To X1
    For Y = 0 To Y1
      couleuranc0 = GetPixel(htoto, X, Y) 'lecture de la couleur actuelle du pixel
      If couleuranc0 = coulanc Then
        ExtFloodFill htoto, X, Y, couleuranc0, FLOODFILLSURFACE
      End If
    Next Y
  Next X
  toto.AutoRedraw = False
  toto.Refresh
  DeleteObject mbrush
End Sub


Il y a-t-il un moyen pour que les couleurs se change plus vite ?

Encore un grand Merci !

@++ Horace
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Horace7 6 Messages postés dimanche 26 avril 2009Date d'inscription 28 décembre 2009 Dernière intervention - 28 déc. 2009 à 19:26
3
Merci
Je me doutais un peu que ce forum allez juste me faire perdre du temps...

Donc avec ma logique j'ai conclu à :

sauvegarder:
        dlg.Filter = "images bmp|*.bmp|images wmf|*.wmf|icones|*.ico|curseurs|*.cur|fichiers rle|*.rle|metafichiers etendus|*.emf|images gif|*.gif|images jpg|*.jpg|images jpeg|*.jpeg|images GD Picture|*.gdp|tous|*.*"
        dlg.Action = 2
        If dlg.FileName <> "" Then
            nom$ = dlg.FileName
            Call SavePicture(Picture1.Image, nom$)
            Text1.Text = "Créé !"
            Text1.Visible = True
            Frame3.Height = "1455"
        End If


@++

Merci Horace7 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de Horace7
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 28 déc. 2009 à 14:06
0
Merci
Salut
On suppose que "dlg" est un CommonDialog (?)
Regarde dans l'aide.
Il existe une propriété CancelError qui, quand elle est à True, provoque une erreur 32755.
Utilisation classique :
Private Sub Form_Load()
    On Error GoTo Erreur
    With CommonDialog1
        .CancelError = True
        .ShowOpen
        MsgBox .FileName
    End With
    Exit Sub
Erreur:
    MsgBox "Erreur " & Err.Number & " - " & Err.Description
End Sub

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Horace7 6 Messages postés dimanche 26 avril 2009Date d'inscription 28 décembre 2009 Dernière intervention - 28 déc. 2009 à 18:08
0
Merci
En plus fou claire c'est possible ??

Pour toi c'est assez "simple", mais j'ai cherché 1/2 heures sur internet un exemple pour sauvegarder en vb6... J'arrive au point ou il manque 2-3 lignes.

Tu ne peux pas au lieu de jouer au devinette me dire quoi faire... Car je viens de débuter le vb6 et je trouve aucune "source précise"... Si je post un message c'est pour un gain de temps car j'ai plus vite fais de chercher...

Et aussi je ne veux pas un message d'erreur mais juste pouvoir annuler "normalement"...

Merci pour ton aide, et j'aurais du préciser que je viens juste de commencer le vb6...

Veuillez bien m'excuser pour ce petit flou de ma part.

J'ai respecté toutes les règles, mon post est appliqué/propre donc je mérite une réponse ayant le même niveau soit complète (donnant/donnant non ?), on ne peut pas me refuser que j'ai cherché... http://www.vbfrance.com/codes/EDITEUR-IMAGE_23838.aspx
Commenter la réponse de Horace7
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 28 déc. 2009 à 19:31
0
Merci
Non, je ne te donnerai pas un code tout fait, ce n'est pas le but du site (on n'a nullement l'intention de remplacer les professionnels dont c'est le métier), c'est à toi de refflechir.
Si vraiment tu veux gagner du temps, commence par taper F1 sous VB6 et regarder l'aide associée au CommonDialog, tout y est expliqué.
Si tu veux savoir comment ça marche, colle ce code (plus haut) dans un nouveau projet et regarde ce qu'il fait, tu comprendras bien vite comment procéder.
Il te faut te familiariser avec les bases du langage. Dans ce cas, il faut gérer l'erreur, comme décrit dans le code fourni. Si besoin, intéresse toi à la gestion d'erreur.
Une brique après l'autre.
Commenter la réponse de cs_Jack
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 28 déc. 2009 à 19:34
0
Merci
Sacré phénomène, celui-là (pour être poli)
Commenter la réponse de cs_Jack
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 28 déc. 2009 à 22:49
0
Merci
Bonjour, Horace7,

Ta surprenante réaction fait que je crains fort que tu devras alors régler seul le deuxième aspect de ta discussion ...(désolé pour toi, mais j'allais y venir, lorsque, voyant ton comportement, je me suis bien évidemment ravisé )


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.