Wie kann man den Zoomabstand eines Bildes in einer Bildbox einstellen?Bild in Bildbox zoomen
ich ein Bild aus einer Datei zu einem picturebox Laden, hier ist mein Code ...
Dim fs As FileStream
OpenFileDialog1.Filter = "JPG files (*.jpg)|*.jpg|" & "BMP Files (*.bmp)|*.bmp|" _
& "TIF Files (*.tif)|*.tif|" & "PNG Files (*.png)|*.png|" & "ALL Files (*.*)|*.*"
OpenFileDialog1.Title = "Select an Image File"
If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
currentfilename = OpenFileDialog1.FileName
If currentfilename.ToUpper.EndsWith(".JPG") Or _
currentfilename.ToUpper.EndsWith(".BMP") Or _
currentfilename.ToUpper.EndsWith(".TIF") Or _
currentfilename.ToUpper.EndsWith(".PNG") Then
If Not (Pic.Image Is Nothing) Then
Pic.Image.Dispose()
Pic.Image = Nothing
End If
fs = New FileStream(currentfilename, IO.FileMode.Open, IO.FileAccess.Read)
Pic.Image = Image.FromStream(fs)
original = Pic.Image
End If
End If
Und dann bin ich Einstellung des Zoom-Abstandes mit diesem Code ...
If original Is Nothing Then
Exit Sub
End If
If Not converted Is Nothing Then
converted.Dispose()
End If
If Not zoomImage Is Nothing Then
zoomImage.Dispose()
End If
zoomImage = New Bitmap(original, _
(Convert.ToInt64(original.Width * (ZoomValue)/100)), _
(Convert.ToInt64(original.Height * (ZoomValue/100))))
converted = Graphics.FromImage(zoomImage)
converted.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic
Pic.Image = Nothing
Pic.Image = zoomImage
Ich habe keine Probleme mit diesem, wenn ich nur kleine Bilder verwende, aber es verwendet viel Speicher, wenn ich ein großes Bild habe, zum Beispiel ein Bild, das ich anzeige, ist eine 1,5 MB TIFF-Datei, die eine hat Größe von 33000 x 4000. Ich möchte nur Zoomstufen des Bildes einstellen, ich brauche nichts anderes wie das Zeichnen auf das Bild, eine Farbe ändern eines Pixels oder einer anderen Manipulation.