| |
VB.NET - FortgeschrittenePictureBox save | | | Autor: Morpheus852 | Datum: 05.03.07 13:00 |
| Hallo Leute,
ich hab folgendes Problem,
ich lade in eine PictureBox ein image, dabei wird die PictureBox nicht vollständig mit dem Bild aufgefüllt. Nun möchte ich den ganzen PictureBox Inhalt speichern, das heisst Hintergrundfarbe plus PictureBox.Image, ich habe bisher nur das Image speichern können.
gruss Morph | |
Re: PictureBox save | | | Autor: GPM | Datum: 05.03.07 15:46 |
| Using bmp As Bitmap = New Bitmap(PicBox.Width, PicBox.Height), g As Graphics = _
Graphics.FromImage(bmp)
g.Clear(PicBox.BackColor)
g.DrawImage(PicBox.Image, 0, 0)
bmp.Save("TestBild.bmp")
End Using MfG GPM | |
Re: PictureBox save | | | Autor: Morpheus852 | Datum: 06.03.07 10:44 |
| Danke dir, habe gestern noch in einem alten Archiv das hier gefunden:
Dim skalierung As Double
Dim pngUserAvatarOriginal = ImageFromWeb(LoadPath)
skalierung = pngUserAvatarOriginal.width / 133
If (pngUserAvatarOriginal.Height / skalierung) > 133 Then
skalierung = pngUserAvatarOriginal.Height / 133
End If
'neue Breite des Bildes
Dim NewWidth As Integer = pngUserAvatarOriginal.Width / skalierung
'Neue Höhe des Bildes
Dim NewHeight As Integer = pngUserAvatarOriginal.Height / skalierung
'Position des Bilder auf dem Hintergrund, nach Berechung immer mittig
' positionieren
Dim newLeft As Integer = (133 - NewWidth) / 2
Dim NewTop As Integer = (133 - NewHeight) / 2
'Hintergrund des Bildes
Dim pngUserAvatarVoralge = New System.Drawing.Bitmap(133, 133, _
System.Drawing.Imaging.PixelFormat.Format24bppRgb)
Dim ResizeGraphics = System.Drawing.Graphics.FromImage( _
pngUserAvatarVoralge)
ResizeGraphics.CompositingMode = _
Drawing.Drawing2D.CompositingMode.SourceOver
ResizeGraphics.CompositingQuality = _
Drawing.Drawing2D.CompositingQuality.HighQuality
ResizeGraphics.InterpolationMode = _
Drawing.Drawing2D.InterpolationMode.High
ResizeGraphics.SmoothingMode = _
Drawing.Drawing2D.SmoothingMode.HighQuality
ResizeGraphics.TextRenderingHint = _
Drawing.Text.TextRenderingHint.AntiAlias
ResizeGraphics.Clear(System.Drawing.Color.White)
ResizeGraphics.DrawImage(pngUserAvatarOriginal, newLeft, NewTop, _
NewWidth, NewHeight)
pngUserAvatarOriginal.Dispose()
'Das komplette Bild speichern
pngUserAvatarVoralge.Save(SavePath)
pngUserAvatarVoralge.Dispose() Das war genau das was ich gesucht habe. Deinen Code wollte ich auch noch kurz testen, allerdings war der Code nicht einwandfrei. Der Compiler kannte Using nicht, hast du mir vielleicht einen Verweis auf ein Beispiel zu Using oder so? | |
Re: PictureBox save | | | Autor: GPM | Datum: 06.03.07 11:14 |
| Das liegt wohl an deiner etwas älteren Net-Version. Da gab es Using halt noch nicht
Dim bmp As Bitmap = New Bitmap(PicBox.Width, PicBox.Height)
Dim g As Graphics = Graphics.FromImage(bmp)
g.Clear(PicBox.BackColor)
g.DrawImage(PicBox.Image, 0, 0)
bmp.Save("TestBild1.bmp")
g.Dispose()
bmp.Dispose() MfG GPM | |
Re: PictureBox save | | | Autor: Drapondur | Datum: 06.03.07 12:14 |
| Using sieht übersetzt nach 1.1 eigentlich so aus (und so sollte man's auch machen, um auch nach einem Fehler Disposen zu können):Dim bmp As Bitmap = New Bitmap(PicBox.Width, PicBox.Height)
Try
Dim g As Graphics = Graphics.FromImage(bmp)
Try
g.Clear(PicBox.BackColor)
g.DrawImage(PicBox.Image, 0, 0)
bmp.Save("TestBild1.bmp")
Finally
g.Dispose()
End Try
Finally
bmp.Dispose()
End Try Es grüßt der Besserwisser
D. | |
| 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 |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. 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
|
|