vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Imageviewer 
Autor: Thomas01
Datum: 13.05.17 06:27

Moin,

ich möchte an einer gewissen Stelle am Monitor ein Bild positionieren.
Also FormBorderstyle auf None und StartPosition vergeben.

Wie kann ich beim Start des Programms die im gleichen Ordner enthaltenen jpgs laden, und diese per linker und rechter Maustaste weiterschalten ?

Tschüss
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Imageviewer 
Autor: Manfred X
Datum: 13.05.17 08:21

Hallo!

Bitmap-Objekt zum Laden eines Bildes verwenden
(Binding-)ListOf(Bitmap) zur Aufbewahrung der Bilderserie nutzen
Abhängig vom Projekttyp (WPF, WinForms):
ein geeignetes Display-Control einsetzen
Zum Schalten:
ein Maus-Event des Control verarbeiten
(Listenindex umsetzen, Display-Control aktualisieren)

Das Laden der Bilderserie am besten im Hintergrund
(Backgroundworker) vornehmen.
Falls es sehr viele Bilder sind, immer nur einen
Teil im Hintergrund laden und bei Bedarf nachladen.
(sonst Speicherüberlauf).
Zur Aufbewahrung von JPGs könnte man auch die
komprimierte Bitfolge aus der Datei in einen
Memorystream laden (Speicherersparnis) und erst
zur Anzeige dekomprimieren.
http://www.vbarchiv.net/forum/id31_i1563t1563_blockierung-von-bilddateien-verhindern-vbnet.html

Beitrag wurde zuletzt am 13.05.17 um 08:24:23 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Imageviewer 
Autor: Thomas01
Datum: 13.05.17 08:24

Hi,

das mit dem Bildern habe ich hinbekommen.
Ich lasse mir in das bild noch ein Rechteck zeichnen mittels

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles _
  Button1.Click
        ' x/y Breite Höhe
        Dim RedPen As New Pen(Color.Red, 3)
        Dim rect As New Rectangle(7, 515, 32, 15)
        pbImage.CreateGraphics.DrawRectangle(RedPen, rect)
    End Sub
wie kann ich das Rechteck bei erneuten clicken wieder ausblenden lassen ?

Beitrag wurde zuletzt am 13.05.17 um 08:25:33 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Imageviewer 
Autor: Manfred X
Datum: 13.05.17 08:31

Hallo!

Verwende (stets) das Paint-Event der Picturebox (?),
um in die Zeichenoberfläche das Rechteck einzutragen,
falls eine formular-global definierte Boolean-Variable
"true" ist, sonst: nicht zeichnen.
Beim Umsetzen des Wertes dieser Variable "ZeichneRechteck"
das "Invalidate" der Picturebox rufen.
Dadurch wird das Paint-Event ausgelöst und die Oberfläche
des Control (ganz oder teilweise) neu gezeichnet unter
Beachtung des Wertes der BOOL-Variable im Code:
If ZeichneRechteck then
'..... Rechteck zeichnen
End If

Beitrag wurde zuletzt am 13.05.17 um 08:34:34 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Imageviewer 
Autor: Thomas01
Datum: 13.05.17 09:33

wäre für ein Beispiel mit dem Paint-Event dankbar.
Irgendwie hab ich nen Denkfehler drinnen
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Beispiel: Invalidate 
Autor: Manfred X
Datum: 13.05.17 11:44

Windows.Forms-Formular:
Public Class frmDrawRect
 
    Dim WithEvents btnDrawRect As New Button With _
        {.Parent = Me, .Text = "Zeichne Rechteck", .Width = 150}
    Dim WithEvents pb As New PictureBox With _
        {.Parent = Me, .Top = 50, .Size = New Size(300, 300), _
         .SizeMode = PictureBoxSizeMode.CenterImage}
 
    Dim DrawRect As Boolean = False
 
 
    Private Sub frmDrawRect_Load(sender As System.Object, _
        e As System.EventArgs) Handles MyBase.Load
 
        Me.Size = New Size(350, 400)
        Dim bmp As New Bitmap(250, 250)
        Using g As Graphics = Graphics.FromImage(bmp)
            g.Clear(Color.LightGray)
        End Using
        pb.Image = bmp
    End Sub
 
 
    Private Sub pb_Paint(sender As Object, _
        e As System.Windows.Forms.PaintEventArgs) Handles pb.Paint
 
        With e.Graphics
            Using p As New Pen(Color.Green, 4)
                .DrawEllipse(p, New Rectangle(New Point(0, 0), pb.Size))
                If DrawRect Then
                    Dim rect As New Rectangle(New Point(60, 60), New Size(130, _
                      130))
                    .DrawRectangle(p, rect)
                End If
            End Using
        End With
    End Sub
 
    Private Sub btnDrawRect_Click(sender As Object, _
        e As System.EventArgs) Handles btnDrawRect.Click
 
        DrawRect = Not DrawRect
        btnDrawRect.Text = _
            If(DrawRect, "Entferne Rechteck", "Zeichne Rechteck")
        pb.Invalidate()
    End Sub
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel