|
| |

VB.NET - Ein- und Umsteiger| Zoomen innnerhalb einer Picturebox | |  | | Autor: Volker Bunge | | Datum: 10.02.13 10:50 |
| Hallo zusammen,
für mein neues Projekt benötige ich Eure Hilfe.
Innerhalb einer festen Pictureboxgröße soll dass angezeigte Bild vergrößert und verkleinert werden.
Mein bisheriger Code sieht so aus:
Dim bmp As Bitmap
Dim resizingFactor As Double = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
' Hier deaktiviert, da die Werte über Setting-Werte ermittelt werden
'Me.Dateiname.Text = My.Settings.AktuellesVerzeichnis &
' My.Settings.AktuelleDatei & "." & My.Settings.AktuelleDateiEndung
Me.Dateiname.Text="C:\Temp\Bilder\DSCF0001.JPG"
imgOriginal = Image.FromFile(Me.Dateiname.Text)
Bildanzeige.Image = imgOriginal
bmp = New Bitmap(Me.Dateiname.Text)
' ZoomSlider einstellen
zoomSlider.Minimum = -1000
zoomSlider.Maximum = 1000
zoomSlider.SmallChange = 1
zoomSlider.LargeChange = 1
zoomSlider.UseWaitCursor = False
Zoomfaktor.Text = 1
end sub
Private Sub Bildanzeige_Paint(ByVal sender As System.Object, ByVal e As _
System.Windows.Forms.PaintEventArgs) Handles Bildanzeige.Paint
If bmp IsNot Nothing Then
e.Graphics.InterpolationMode = _
Drawing2D.InterpolationMode.NearestNeighbor
e.Graphics.PixelOffsetMode = Drawing2D.PixelOffsetMode.HighQuality
If resizingFactor = 0 Then Exit Sub
If resizingFactor > 0 Then
Dim targetRect As New Rectangle(5, 5, bmp.Width * _
resizingFactor, bmp.Height * resizingFactor)
e.Graphics.DrawImage(bmp, New Rectangle(targetRect.Location, _
targetRect.Size))
e.Graphics.DrawRectangle(Pens.Lime, targetRect)
Else
resizingFactor = resizingFactor * -1
Dim targetRect As New Rectangle(5, 5, bmp.Width / _
resizingFactor, bmp.Height / resizingFactor)
e.Graphics.DrawImage(bmp, New Rectangle(targetRect.Location, _
targetRect.Size))
e.Graphics.DrawRectangle(Pens.Lime, targetRect)
End If
End If
end sub
Private Sub zoomSlider_Scroll(ByVal sender As System.Object, ByVal e As _
System.Windows.Forms.ScrollEventArgs) Handles zoomSlider.Scroll
Zoomfaktor.Text = zoomSlider.Value / 10
resizingFactor = Zoomfaktor.Text
Bildanzeige.Refresh()
End Sub
Private Sub Panel1_Scroll(ByVal sender As Object, ByVal e As _
System.Windows.Forms.ScrollEventArgs) Handles Panel1.Scroll
Bildanzeige.Refresh()
End Sub Benötigt werden
1 x Panel = Panel1
1 x Picturebox = Bildanzeige (liegt im Panel)
1 x HScrollbar = ZoomSlider
1 x Textbox = ZoomFaktor
Panel hat Autoscroll = true
Picturebox hat Sizemode = AutoSize
Was bisher funktioniert:
- Über den Zoomslider kann ich das Rectangle-Bild verkleinern und Vergrößern. Es fängt links oben bei 5,5 an und einen grünlichen (Lime) Rand, der sich auch bei einer Verkleinerung irgendwann kpl. innerhalb des Panels zeigt. Die linke obere Ecke und die Farbe ändern ist erst einmal kein Problem.
- Da ja das Panel die Scrollbalken hat und das Panel bzw. die Picturebox das Originalbild in Originalgröße anzeigt, kann ich mit den Scrollbalken auch das Bild in der Anzeige entsprechend verschieben.
Was nicht geht:
- Das Bild kann ich über die Scrollbalken nicht kpl. anzeigen lassen. Ich sehe somit nicht alles, selbst wenn die Scrollbalken ganz unten bzw. ganz oben sind. Dies ist hoffentlich weg, wenn der nächste Punkt gelöst ist.
- Das verkleinerte/vergrößerte Bild wird nicht in die Picturebox in dieser Größe des Rectangles übernommen (Hierfür bräuchte ich eben Eure Hilfe).
Wäre echt Super, wenn mir jemand von Euch eine Lösung meines Problems nennen könnte.
Vielen Dank
Volker |  |
 | 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 |
  |
|
Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
| |
|
Copyright ©2000-2025 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
|
|