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.NET Discussion :

Appel au connaisseur de Graphics, Bitmap, Picturebox..


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 335
    Billets dans le blog
    1
    Par défaut Appel au connaisseur de Graphics, Bitmap, Picturebox..
    Bonjour à tous !

    Après une longue journée de travail sans résultat, je viens vers vous, la tête baissée, implorant votre savoir....

    Auriez vous une piste pour réaliser quelque chose comme ça ? :



    Soit :
    - Une image (quelconque)
    - Une zone non-assombri
    - L'utilisateur peut déplacer cette zone (pas l'image) avec la souris pour éclaircir d'autres partie de l'image.

    j'arrive pas

    Merci... pour toutes réponses, début de réponse, ou autre.


    ----------------------------------------------------------
    1/ Postulat de base : on dispose d'emblée de l'image assombrie et non assombrie.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    sur le form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private _zone as new system.drawing.rectangle(0,0,100,100)
    private _imgsombre as system.Drawing.image ' la remplir quelque part 
    private _imgclaire as system.Drawing.image ' la remplir quelque part
    private _move as boolean
    sur l'event picturebox.paint :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    e.graphics.drawimage(imagesombre ...
    e.Graphics.drawimage(imageclaire ... ' mettre les paramètres pour ne dessiner que _zone à l'endroit de _zone)
    sur mousedown si e.poisition est sur _zone set _move à true
    sur mouseup _move = false
    sur mousemove si _move = true, définir _zone en fonction de e.x et e.y
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre très actif

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 335
    Billets dans le blog
    1
    Par défaut merci
    C'est juste parfait

    merci.

    Avec une form et une picturebox, voici le code complet :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Public Class Form1
        Private _zone As New System.Drawing.Rectangle(0, 0, 100, 100)
        Private _imgsombre As System.Drawing.Image = Image.FromFile("C:\Users\Stève\Desktop\testCalqueNoir\sombre.png")
        Private _imgclaire As System.Drawing.Image = Image.FromFile("C:\Users\Stève\Desktop\testCalqueNoir\normal.png")
        Private _move As Boolean = False
        Private _ecartX As Integer
        Private _ecartY As Integer
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            PictureBox1.Image = _imgsombre
        End Sub
        Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
            e.Graphics.DrawImage(_imgsombre, PictureBox1.ClientSize)
            e.Graphics.DrawImage(_imgclaire, _zone, _zone, GraphicsUnit.Pixel)
        End Sub
        Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
            _move = True
            _ecartX = e.X - _zone.X
            _ecartY = e.Y - _zone.Y
        End Sub
        Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
            If _move = True Then
                If _zone.Contains(New Point(e.X, e.Y)) Then
                    _zone = New System.Drawing.Rectangle(e.X - _ecartX, e.Y - _ecartY, 100, 100)
                    PictureBox1.Refresh()
                End If
            End If
        End Sub
        Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
            _move = False
        End Sub
    End Class

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. BufferedImage et Android.graphics.bitmap
    Par slorre dans le forum 2D
    Réponses: 2
    Dernier message: 03/01/2012, 22h35
  2. text sur graphic de PictureBox qui disparaît
    Par ppphil dans le forum C#
    Réponses: 24
    Dernier message: 04/12/2009, 15h20
  3. Enregistrer Graphics dans pictureBox
    Par orj30754 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/02/2009, 15h16
  4. Impossible de dessiner Image avec Graphics sur pictureBox
    Par Arnard dans le forum Windows Forms
    Réponses: 11
    Dernier message: 14/12/2007, 14h06
  5. placement Bitmap pictureBox
    Par Invité dans le forum VB.NET
    Réponses: 6
    Dernier message: 20/05/2007, 06h56

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