Zoomproblem

  • VB.NET

Es gibt 38 Antworten in diesem Thema. Der letzte Beitrag () ist von Bowserkoopa.

    Ich habe jetzt es geschafft, per Button ein Bild in eine Picbox zu laden und wollte grade ne zoomfunktion bauen. Dabei treffe ich auf folgendes problem:

    Picturebox ist in einem Panel und beide sind auf Autosize gestellt. Das führt dazu, dass bei Bildern,größer als die Picbox, Scrollbalken erscheinen. Das würde ich gerne so auch beibehalten. Nachteil: Zoomen geht bei Autosize nicht. Nur bei StretchImage ist es möglich, das Bild zu zoomen indem man die Breite und Höhe des Bildes ändert. Wie kann ich aber beides in eines quetschen?

    Über die Suchfunktion gibt es meist elendslange Codes die ich nicht verstehe und so nützen sie mir natürlich nichts. Man sollte schon wissen was man programmiert^^

    Ich hätte dabei auch noch eine Bonusfrage, die ist aber eher nebensächlich: Wie schaffe ich es, per Buttonklick kleine Grafiken über dem Bild anzeigen zu lassen, die sich verschieben lassen, und ihre Koordinaten in ein Textfeld übertragen? (Letzeres krieg ich her, nur das Grafikerscheinen lassen, nicht.
    Ne, funktioniert so leider nicht.
    Code zum zoomen müsste stimmen

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. PictureBox1.Width = PictureBox1.Width + 25
    3. PictureBox1.Height = PictureBox1.Height + 25
    4. End Sub

    Aber bei Picturebox Normal wird zwar die Picturebox vergrößert(sieht man an den kleiner werdenden Scrollbalken) aber das Bild selbst bleibt gleich groß. Es wird wirklich nur die Box vergrößert
    Ich habe leider die I-Adresse nicht Notiert.
    Aber diese Funktion Skaliert.

    Spoiler anzeigen

    VB.NET-Quellcode

    1. 'Mit diesem Code lässt sich ein Bild ohne Qualitätsverlust neu skalieren,
    2. 'wobei das Größenverhältnis beibehalten wird. Dies ist immer dann interessant,
    3. 'wenn man Bilder in einer PictureBox anzeigen möchte
    4. 'und die Bilder größer oder kleiner als die PictureBox selbst sind.
    5. 'Man kann die Funktion aber auch dazu nutzen,
    6. 'um Thumbnails (Miniaturansichten) von Bilder in einer einheitlichen Größe zu erstellen.
    7. 'Die Funktion erwartet im ersten Parameter das Bild-Objekt.
    8. 'Die beiden nachfolgenden Parameter legen die maximale Breite und Höhe des Bildes fest.
    9. 'Ist das Bild breiter als die maximal angegebene Breite, wird die Breite des Bildes angepasst,
    10. 'wobei die Höhe neu berechnet wird und umgekehrt,
    11. 'so dass das Größenverhältnis des Originalbildes immer gleich bleibt.
    12. 'Weiterhin wird das Bild bei Anpassung der Breite und/oder Höhe interpoliert,
    13. 'damit die Qualität erhalten bleibt.
    14. 'Ist das Originalbild sowohl in der Breite als auch in der Höhe kleiner als die angegebenene maximale Dimension,
    15. 'lässt sich über den optionalen Parameter "bStretch" festlegen,
    16. 'ob das Bild gestretcht werden oder in der Originalgröße dargestellt werden soll.
    17. Public Class Form1
    18. Public Function AutoSizeImage(ByVal oBitmap As Image, _
    19. ByVal maxWidth As Integer, _
    20. ByVal maxHeight As Integer, _
    21. Optional ByVal bStretch As Boolean = False) As Image
    22. ' Größenverhältnis der max. Dimension
    23. Dim maxRatio As Single = CSng(maxWidth / maxHeight)
    24. ' Bildgröße und aktuelles Größenverhältnis
    25. Dim imgWidth As Integer = oBitmap.Width
    26. Dim imgHeight As Integer = oBitmap.Height
    27. Dim imgRatio As Single = CSng(imgWidth / imgHeight)
    28. ' Bild anpassen?
    29. If (imgWidth > maxWidth Or imgHeight > maxHeight) Or (bStretch) Then
    30. If imgRatio <= maxRatio Then
    31. ' Größenverhältnis des Bildes ist kleiner als die
    32. ' maximale Größe, in der das Bild angezeigt werden kann.
    33. ' In diesem Fall muss die Bildbreite angepasst werden.
    34. imgWidth = CInt(imgWidth / (imgHeight / maxHeight))
    35. imgHeight = maxHeight
    36. Else
    37. ' Größenverhältnis des Bildes ist größer als die
    38. ' maximale Größe, in der das Bild angezeigt werden kann.
    39. ' In diesem Fall muss die Bildhöhe angepasst werden.
    40. imgHeight = CInt(imgHeight / (imgWidth / maxWidth))
    41. imgWidth = maxWidth
    42. End If
    43. ' Bitmap-Objekt in der neuen Größe erstellen
    44. Dim oImage As New Bitmap(imgWidth, imgHeight)
    45. ' Bild interpolieren, damit die Qualität erhalten bleibt
    46. Using g As Graphics = Graphics.FromImage(oImage)
    47. g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
    48. g.DrawImage(oBitmap, New Rectangle(0, 0, imgWidth, imgHeight))
    49. End Using
    50. ' neues Bitmap zurückgeben
    51. Return oImage
    52. Else
    53. ' unverändertes Originalbild zurückgeben
    54. Return oBitmap
    55. End If
    56. End Function
    57. 'Aufrufbeispiel
    58. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    59. ' Bild laden
    60. Dim oStream As New System.IO.FileStream("C:\Users\Bernd\Pictures\muttipc.png", IO.FileMode.Open)
    61. Dim oBitmap As Bitmap
    62. oBitmap = New Bitmap(oStream)
    63. oStream.Close()
    64. ' Bild soll optimal an die Größe der PictureBox angepasst und angezeigt werden
    65. With PictureBox1
    66. .Image = AutoSizeImage(oBitmap, .ClientRectangle.Width, .ClientRectangle.Height, True)
    67. End With
    68. End Sub
    69. End Class
    Wow, ist ja ein größeres Stück Code. Also ich fasse mal zusammen: Die Funktion passt das Bild an die Größe der Picturebox an. Beim Zoomen wird also so wie ich es gemacht habe, die Picturebox vergrößert, und das Bild wächst so quasi mit. Demnach muss die Funktion AutoSizeImage immer mit dem Zoom zusammen aufgerufen werden. Hab ich das so richtig verstanden?

    Bezüglich Variable: Ich habe das Bild in der Picturebox mittels OpenFileDialog1.FileName eingebunden. Ich rieche da irgendwie Variablenprobleme, da hier ein Bitmap übergeben wird, aber ich ja nur ein "Image" habe. Macht das was aus?

    Bowserkoopa schrieb:

    Wow, ist ja ein größeres Stück Code. Also ich fasse mal zusammen: Die Funktion passt das Bild an die Größe der Picturebox an. Beim Zoomen wird also so wie ich es gemacht habe, die Picturebox vergrößert, und das Bild wächst so quasi mit. Demnach muss die Funktion AutoSizeImage immer mit dem Zoom zusammen aufgerufen werden. Hab ich das so richtig verstanden?


    Genau so ist es.

    Bowserkoopa schrieb:

    Macht das was aus?

    Nein.

    Versuch es.
    Ich bekomme als Error :
    "Eine Ausnahme (erste Chance) des Typs "System.ArgumentException" ist in System.Drawing.dll aufgetreten." Dazu zeigt es, dass ein ungültiger Parameter in der Zeile steckt.

    Das entspricht dieser Zeile

    ' Bitmap-Objekt in der neuen Größe erstellen
    Dim oImage As New Bitmap(imgWidth, imgHeight)

    Wirklich helfen tut mir das allerdings nicht. Das Aufrufbeispiel funktioniert übrigens wunderbar, nur meine Variante nicht.

    Die Funktion dazu habe ich in einer Trackbar erstellt damit dadurch der Zoomfaktor bestimmt werden kann:

    VB.NET-Quellcode

    1. Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
    2. ' Bild zoomen
    3. PictureBox1.Image = AutoSizeImage(PictureBox1.Image, PictureBox1.Width * TrackBar1.Value, PictureBox1.Height * TrackBar1.Value, True)
    4. End Sub
    warum wusste ich das im Vorraus ?

    VB.NET-Quellcode

    1. Dim oBitmap As Bitmap
    2. Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
    3. PictureBox1.Width = TrackBar1.Value
    4. PictureBox1.Height = TrackBar1.Value
    5. ' Bild soll optimal an die Größe der PictureBox angepasst und angezeigt werden
    6. With PictureBox1
    7. .Image = AutoSizeImage(oBitmap, .ClientRectangle.Width, .ClientRectangle.Height, True)
    8. End With
    9. Label1.Text = TrackBar1.Value.ToString
    10. Me.Refresh()
    11. 'PictureBox1.Refresh()
    12. End Sub


    Auslagern solltest du

    VB.NET-Quellcode

    1. Dim oBitmap As Bitmap
    Ich schätze mal man merkt mir an das ich kein VB-Profi bin :D
    Irgendwie funktioniert es für mich immer noch nicht ganz. Ich kann auch den Code nicht ganz nachvollziehen. Also der Trackbar-Wert wird der Breite und Höhe der Picturebox zugewiesen. Anschließend wird oBitmap(woher weiß vb, dass das unser Bild ist?) gestreckt. Schlussendlich wird noch der Wert der Trackbar in ein Label ausgegeben und die Scrollbar aktualisiert sich. Wenn ich die Trackbar bewege, verschindet das Bild der PictureBox1 einfach. Ich vermute mal, die Breite und Höhe sind zu gering(Trackbar hat ja werte 1-10) fürs Anzeigen. Sorry das ich soviele Probleme bereite :(
    mach mal eine neues Projekt und kopier 1:1 den Code rein.
    Dann legst du nur noch deinen Pfad auf dein Passendes Bild.
    Im Button1.Click

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Public Function AutoSizeImage(ByVal oBitmap As Image, _
    3. ByVal maxWidth As Integer, _
    4. ByVal maxHeight As Integer, _
    5. Optional ByVal bStretch As Boolean = False) As Image
    6. ' Größenverhältnis der max. Dimension
    7. Dim maxRatio As Single = CSng(maxWidth / maxHeight)
    8. ' Bildgröße und aktuelles Größenverhältnis
    9. Dim imgWidth As Integer = oBitmap.Width
    10. Dim imgHeight As Integer = oBitmap.Height
    11. Dim imgRatio As Single = CSng(imgWidth / imgHeight)
    12. ' Bild anpassen?
    13. If (imgWidth > maxWidth Or imgHeight > maxHeight) Or (bStretch) Then
    14. If imgRatio <= maxRatio Then
    15. ' Größenverhältnis des Bildes ist kleiner als die
    16. ' maximale Größe, in der das Bild angezeigt werden kann.
    17. ' In diesem Fall muss die Bildbreite angepasst werden.
    18. imgWidth = CInt(imgWidth / (imgHeight / maxHeight))
    19. imgHeight = maxHeight
    20. Else
    21. ' Größenverhältnis des Bildes ist größer als die
    22. ' maximale Größe, in der das Bild angezeigt werden kann.
    23. ' In diesem Fall muss die Bildhöhe angepasst werden.
    24. imgHeight = CInt(imgHeight / (imgWidth / maxWidth))
    25. imgWidth = maxWidth
    26. End If
    27. ' Bitmap-Objekt in der neuen Größe erstellen
    28. Dim oImage As New Bitmap(imgWidth, imgHeight)
    29. ' Bild interpolieren, damit die Qualität erhalten bleibt
    30. Using g As Graphics = Graphics.FromImage(oImage)
    31. g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
    32. g.DrawImage(oBitmap, New Rectangle(0, 0, imgWidth, imgHeight))
    33. End Using
    34. ' neues Bitmap zurückgeben
    35. Return oImage
    36. Else
    37. ' unverändertes Originalbild zurückgeben
    38. Return oBitmap
    39. End If
    40. End Function
    41. 'Aufrufbeispiel
    42. Dim oBitmap As Bitmap
    43. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    44. ' Bild laden
    45. Dim oStream As New System.IO.FileStream("C:\Users\Bernd\Pictures\muttipc.png", IO.FileMode.Open)
    46. 'Dim oBitmap As Bitmap
    47. oBitmap = New Bitmap(oStream)
    48. oStream.Close()
    49. ' Bild soll optimal an die Größe der PictureBox angepasst und angezeigt werden
    50. With PictureBox1
    51. .Image = AutoSizeImage(oBitmap, .ClientRectangle.Width, .ClientRectangle.Height, True)
    52. End With
    53. End Sub
    54. Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
    55. PictureBox1.Width = TrackBar1.Value
    56. PictureBox1.Height = TrackBar1.Value
    57. ' Bild soll optimal an die Größe der PictureBox angepasst und angezeigt werden
    58. With PictureBox1
    59. .Image = AutoSizeImage(oBitmap, .ClientRectangle.Width, .ClientRectangle.Height, True)
    60. End With
    61. Label1.Text = TrackBar1.Value.ToString
    62. Me.Refresh()
    63. 'PictureBox1.Refresh()
    64. End Sub
    65. End Class


    jetzt solltest du dir diesen Code genau anschauen und damit experimentieren.
    Dann geht dir eine Lampe auf.

    Hoffe ich.
    Scheinbar bin ich wirklich doof. Habe ein neues Projekt gemacht, Picturebox, Scrollbar und Button dort angelegt, Code komplett reinkopiert. Ich hab erkannt, dass die Bildbreite wirklich nur sehr gering angegeben war und es tatsächlich gezoomt wird(hättest doch gleich sagen können xD), allerdings stürzt nach wie vor irgendwann das Programm während dem zoomen ab und er meint die Zeile " Dim imgWidth As Integer = oBitmap.Width" würde nicht passen. Also es würde ja eigentlich tun was es sollte, stürtzt aber dauernd ab, und das soll ja eigentlich nicht sein.

    Außerdem noch ein Anliegen: Trackbar geht jetzt beispielsweise von 100-200. D.h. , alle Bilder werden bei verschieben auf zuerst auf 100 runterskaliert, und anschließend eben kann es bis zu 200 hochgezoomt werden. Wie kann ich machen, dass der Zoom immer von der Ausgangsgröße ausgeht?
    Also ich habe dem Bild auf der Form eine belibige größe geeben. (113, 93)
    Beim laden nimmt das Bild natürlich dann die größe der PictureBox an.
    Den TrackBar habe auf eine größe von 10 bis 2000 gestellt.

    Er geht immer vom Ausgangsbild aus weil nur beim laden da Bild an oBitmap übergenben wird.
    Bei jedem aufruf der Funktion greift er dann wieder darauf zurück.

    VB.NET-Quellcode

    1. Dim oStream As New System.IO.FileStream("C:\Users\Bernd\Pictures\muttipc.png", IO.FileMode.Open)
    2. 'Dim oBitmap As Bitmap
    3. oBitmap = New Bitmap(oStream)
    4. oStream.Close()


    Hinter der ersten Klammer steht dann das oBitmap.

    VB.NET-Quellcode

    1. With PictureBox1
    2. .Image = AutoSizeImage(oBitmap, .ClientRectangle.Width, .ClientRectangle.Height, True)
    3. End With
    Endlich hab ichs jetzt hingekriegt. Es funktioniert soweit diesmal ohne Abstürze. Deshalb geht mal ein rieeeeeeeeeßßßßengroßes Danke an dich :thumbsup:

    Bisher gibt es nur noch einen kleinen Manko:

    Beim laden nimmt das Bild natürlich dann die größe der PictureBox an.

    Da muss ich dich enttäuschen, aber dem ist leider nicht der Fall. Bei kleinster Bewegung der Trackbar wird das Bild urplötzlich geschrumpft :/

    Für zukünftige VB-User, Zoomfunktion:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. 'Filedialog der die Bildadresse angibt
    2. Dim OpenFileDialog1 As New OpenFileDialog()
    3. 'Unser zukünftig skalierbares Bild
    4. Dim oBitmap As Bitmap
    5. 'Grafik Ladebutton
    6. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    7. 'Bei Klick wird eine Grafik geladen
    8. OpenFileDialog1.Filter = "All files (*.*)|*.*|PNG Dateien (*.png)|*.png"
    9. OpenFileDialog1.FilterIndex = 2
    10. OpenFileDialog1.RestoreDirectory = True
    11. 'Wenn erfolgreich,
    12. If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
    13. 'Der Stream fürs Laden des Bildes
    14. Dim oStream As New System.IO.FileStream(OpenFileDialog1.FileName, IO.FileMode.Open)
    15. 'Dim oBitmap As Bitmap
    16. oBitmap = New Bitmap(oStream)
    17. oStream.Close()
    18. End If
    19. With PictureBox1
    20. .Image = AutoSizeImage(oBitmap, .ClientRectangle.Width, .ClientRectangle.Height, True)
    21. End With
    22. End Sub
    23. 'Per Trackbar Zoom
    24. Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
    25. PictureBox1.Width = TrackBar1.Value
    26. PictureBox1.Height = TrackBar1.Value
    27. ' Bild soll optimal an die Größe der PictureBox angepasst und angezeigt werden
    28. With PictureBox1
    29. .Image = AutoSizeImage(oBitmap, .ClientRectangle.Width, .ClientRectangle.Height, True)
    30. End With
    31. Label1.Text = TrackBar1.Value.ToString
    32. Me.Refresh()
    33. 'PictureBox1.Refresh()
    34. End Sub


    Ich weiß nicht obs wichtig ist, aber ich bekomm zusätzlich die Debugging-Meldung :"Eine Ausnahme (erste Chance) des Typs "System.ArgumentException" ist in mscorlib.dll aufgetreten."
    Es macht zwar nix, aber früher oder später wirds wohl wichtig sein.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Bowserkoopa“ ()

    Wenn ich kurz dazwischen schreiben darf:

    die Zeile " Dim imgWidth As Integer = oBitmap.Width" würde nicht passen
    Bist Du sicher, das das Bild 'oBitmap' auch etwas beinhaltet?

    Wenn man Eigenschaften von einer 'leeren' Klasse (hört sich doof an) auslesen will kann es zu einer Nullverweisaufnahme kommen.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Also es sollte eigentlich schon eines beinhalten. Also es wird zumindest mal gezeichnet. Die Zeile stammt zusätzlich noch aus der Funktion von ChaosBernd, also sie sollte an und für sich funktionieren :/
    Aber worüber ich mir Sorgen mache, sind die Meldungen die ich beim Debuggen erhalte(sind keine Warnings oder Errors, einfach nur Debug-Meldungen). Irgendwann wirds wohl damit Probleme geben, oder aber das Programm wird instabil:

    Eine Ausnahme (erste Chance) des Typs "System.ArgumentException" ist in mscorlib.dll aufgetreten.
    Eine Ausnahme (erste Chance) des Typs "System.NullReferenceException" ist in Object-Creator.exe aufgetreten.
    Eine Ausnahme (erste Chance) des Typs "System.ArgumentException" ist in System.Drawing.dll aufgetreten.
    Eine Ausnahme (erste Chance) des Typs "System.ArgumentException" ist in System.Drawing.dll aufgetreten.
    Eine Ausnahme (erste Chance) des Typs "System.NullReferenceException" ist in Object-Creator.exe aufgetreten.

    Was kann man gegen solche Fehler machen? Sie zeigen weder Zeile noch richtiges Problem an. "Ausnahme aufgetreten" sagt mir so nicht viel^^

    EDIT: Scheinbar ist das Problem wohl doch nicht GANZ gelöst. Ich wollte für die PictureBox nun noch Drag und Drop einbauen, doch wenn ich dann zoomen will, schmierts mir gleich darauf ab.

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Vorwort:
    2. OriginalPictureWidth = PictureBox1.Image.Width
    3. OriginalPictureHeight = PictureBox1.Image.Height
    4. Brauchte ich, um die Originalmaße beizubehalten.
    5. Variablen sind alle schon definiert, aber ich erspare euch das ganze mal, sonst wirds zuviel zum lesen.
    6. 'Initialisierung
    7. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    8. 'Drag and Drop aktivieren
    9. PictureBox1.AllowDrop = True
    10. End Sub
    11. 'Drag and Drop für die Picturebox der Grafik
    12. Private Sub PictureBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox1.DragDrop
    13. PictureBox1.Image = Image.FromFile(CType(e.Data.GetData(DataFormats.FileDrop), Array).GetValue(0).ToString)
    14. oBitmap = PictureBox1.Image
    15. End Sub
    16. Private Sub PictureBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox1.DragEnter
    17. e.Effect = DragDropEffects.Copy
    18. End Sub
    19. 'Zoomfunktion der Trackbar
    20. Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
    21. 'Breite und Höhe der PBox werden Werte der Trackbar
    22. 'PictureBox1.Width = TrackBar1.Value
    23. 'PictureBox1.Height = TrackBar1.Value
    24. PictureBox1.Width = OriginalPictureWidth * (TrackBar1.Value / 10)
    25. PictureBox1.Height = OriginalPictureHeight * (TrackBar1.Value / 10)
    26. ' Bild soll optimal an die Größe der PictureBox, angepasst und angezeigt werden
    27. With PictureBox1
    28. .Image = AutoSizeImage(oBitmap, .ClientRectangle.Width, .ClientRectangle.Height, True)
    29. End With
    30. 'Zoomfaktor wiedergeben
    31. Label11.Text = (TrackBar1.Value.ToString) / 10
    32. Me.Refresh()
    33. End Sub
    34. 'Grafik Ladebutton
    35. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    36. 'Bei Klick wird eine Grafik geladen
    37. OpenFileDialog1.Filter = "All files (*.*)|*.*|PNG Dateien (*.png)|*.png"
    38. OpenFileDialog1.FilterIndex = 2
    39. OpenFileDialog1.RestoreDirectory = True
    40. 'Wenn erfolgreich,
    41. If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
    42. 'Der Stream fürs Laden des Bildes
    43. Dim oStream As New System.IO.FileStream(OpenFileDialog1.FileName, IO.FileMode.Open)
    44. 'Variable für Bitmap ist global deklariert, wegen Zoom
    45. oBitmap = New Bitmap(oStream)
    46. oStream.Close()
    47. End If
    48. 'Bild setzen
    49. PictureBox1.Image = oBitmap
    50. 'Bild auf PictureBox größe skalieren
    51. 'With PictureBox1
    52. '.Image = AutoSizeImage(oBitmap, .ClientRectangle.Width, .ClientRectangle.Height, True)
    53. 'End With
    54. 'Originalmaße speichern
    55. OriginalPictureWidth = PictureBox1.Image.Width
    56. OriginalPictureHeight = PictureBox1.Image.Height
    57. End Sub

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Bowserkoopa“ ()