| |
VB.NET - Ein- und UmsteigerGraphik 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! | |
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.
| |
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 | |
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 | |
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. | |
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 | |
Re: Graphik aus PictureBox kopieren | | | Autor: LesPaul | Datum: 27.04.15 09:21 |
| moin
Ja Danke!
angeschaut und verstanden
Gruß, LesPaul | |
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 | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|
|
|
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
|
|