vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 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
Graphik aus PictureBox kopieren 
Autor: LesPaul
Datum: 25.04.15 12:43

moin Forum,

zeichne ein Gitter mit Maßen und dann Raumformen mit

Grafik.DrawLine(stift, x1, y1, x2, y2)
auf eine PB.
Nun möchte ich diese Grafik drehen bzw. spiegeln und in einer weiteren PB anzeigen

Dim bmpNeu As New Bitmap(PictureBox1.Width, PictureBox1.Height)
 
        PictureBox1.DrawToBitmap(bmpNeu, PictureBox1.Bounds)
        bmpNeu.RotateFlip(RotateFlipType.Rotate90FlipNone)
        PictureBox3.Image = bmpNeu
funktioniert aber die Grafik wird "verschoben" angezeigt, bedeutet: es wird nicht der "Inhalt" sondern die PictureBox1 mit Rahmen in PictureBox3 ca. auf x1 = 10 / y1 = 10 und nicht auf x1 = 0 / y1 = 0 angezeigt, also fehlt rechts und unten was.

Was mache ich falsch?

Danke für Hinweise!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Graphik aus PictureBox kopieren 
Autor: Manfred X
Datum: 25.04.15 13:03

Hallo!

Verwende eine Bitmap-Klasse in der gewünschten Größe,
erstelle dafür ein Graphics-Objekt und zeichne Dein Diagramm
direkt in diese Bitmap.
Die Rotateflip-Methode kann dann direkt verwendet werden.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Graphik aus PictureBox kopieren 
Autor: GPM
Datum: 25.04.15 14:02

Ersetze mal:
 PictureBox1.DrawToBitmap(bmpNeu, PictureBox1.Bounds)
durch:
 PictureBox1.DrawToBitmap(bmpNeu, New Rectangle(0, 0, PictureBox1.Width, _
   PictureBox1.Height))
Mfg GPM
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Graphik aus PictureBox kopieren 
Autor: LesPaul
Datum: 25.04.15 15:45

erstmal Vielen Dank für die Antworten!

@Manfred X
ist für mich neu, muss ich mich erst einlesen ...

@GPM
die Grafik wird immer noch minimal verschoben, allerdings jetzt nur noch in Drehrichtung, funktioniert gut wenn man die Aktion nur einmal ausführt, wird die gedrehte Grafik erneut gedreht sieht man deutlich die Verschiebung an Hand des PB Rahmens, es sei denn man nutzt "BorderStyle = none"

Gruß, LesPaul
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Graphik aus PictureBox kopieren 
Autor: Manfred X
Datum: 25.04.15 16:38

Schau Dir diesen Code an ....
(in ein frisches Formular namens frmDrawRotate kopieren)
Public Class frmDrawRotate
 
    'Picturebox für die Anzeige
    Dim pbox As New PictureBox With _
        {.Parent = Me, .Width = 500, .Height = 500, _
         .BorderStyle = BorderStyle.Fixed3D, _
         .BackColor = Color.Yellow, _
         .SizeMode = PictureBoxSizeMode.CenterImage}
 
 
    Private Sub frmDrawRotate_Load(sender As System.Object, _
        e As System.EventArgs) Handles MyBase.Load
 
        Me.Size = New Size(530, 500)
 
        Dim bmp As New Bitmap(490, 390) 'Zeichenfläche
 
        Using g As Graphics = Graphics.FromImage(bmp), _
            pn As New Pen(Color.Blue, 2)
 
            g.Clear(Color.White) 'Farbe der Zeichen-Fläche
 
            'Gitterlinien
            For i As Integer = 0 To bmp.Width Step 20
                g.DrawLine(pn, i, 0, i, bmp.Height)
            Next i
            pn.Color = Color.Red
            For i As Integer = 0 To bmp.Height Step 30
                g.DrawLine(pn, 0, i, bmp.Width, i)
            Next i
        End Using
 
        'RotateFlip-Methode anwenden
        bmp.RotateFlip(RotateFlipType.Rotate270FlipX)
 
        'Bitmap im Control anzeigen
        pbox.Image = bmp
    End Sub
 
End Class


Beitrag wurde zuletzt am 25.04.15 um 16:40:03 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Graphik aus PictureBox kopieren 
Autor: sv00010
Datum: 26.04.15 07:40

LesPaul schrieb:
Zitat:


Dim bmpNeu As New Bitmap(PictureBox1.Width,
PictureBox1.Height)
 
        PictureBox1.DrawToBitmap(bmpNeu, PictureBox1.Bounds)
        bmpNeu.RotateFlip(RotateFlipType.Rotate90FlipNone)
        PictureBox3.Image = bmpNeu

Statt PictureBox1. immer wenn möglich PictureBox1.Image verwenden.
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Graphik aus PictureBox kopieren 
Autor: LesPaul
Datum: 27.04.15 09:21

moin

Ja Danke!
angeschaut und verstanden

Gruß, LesPaul
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Graphik aus PictureBox kopieren 
Autor: LesPaul
Datum: 27.04.15 09:29

Hallo sv00010

da fehlt mir wohl noch was für's Verständnis

Zitat:

Statt PictureBox1. immer wenn möglich PictureBox1.Image
verwenden.


ich erhalte Fehlermeldungen "kein Member..." oder "Null Verweise..."

Gruß, LesPaul
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