Rubrik: Grafik und Font · Bilder & Icons | VB-Versionen: VB4, VB5, VB6 | 28.04.02 |
Gestretchtes Bild speichern (ImageBox) Ein kleiner Trick - und schon lässt sich ein in der ImageBox gestretchtes Bild in der angezeigten Größe speichern. | ||
Autor: Dieter Otter | Bewertung: | Views: 18.978 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Viele von uns nutzen für die Anzeige von Bildern das Image-Control, da dieses im Gegensatz zur PictureBox über die Eigenschaft Stretch verfügt, so daß sich das anzuzeigende Bild automatisch an die Größe der ImageBox anpassen lässt.
Jetzt soll es vorkommen, daß man ein gestretchtes Bild in genau in der angezeigten (gestretchten) Größe speichern möchte, z.B. weil man eine Art "Bildvorschau" erstellt und speichern will.
Der Versuch das Bild via SavePicture Image1.Picture, "Bild.bmp" zu speichern schlägt fehl, da das Bild immer in seiner Originalgröße gespeichert wird - egal, ob gestretcht angezeigt oder nicht.
Wir behelfen und eines kleinen Tricks
Wir plazieren eine zusätzliche PictureBox auf die Form und setzen Visible = False. Das Speichern des gestretchten Bildes aus der ImageBox erfolgt dann über die PictureBox, nachdem wir das gestrechte Bild via PaintPicture in der angezeiten Größe in die PictureBox kopiert haben.
Hier der Code
' gestretchtes Bild speichern With Picture1 ' Größe der unsichtabren PictureBox festlegen .BorderStyle = 0 .Width = Image1.Width .Height = Image1.Height ' Wichtig: AutoRedraw = True .AutoRedraw = True ' Bild aus ImageBox übertragen .PaintPicture Image1.Picture, 0, 0, _ Image1.Width, Image1.Height ' Bild abspeichern SavePicture .Image, "c:\bild.bmp" End With