Icons erzeugen

25/08/2007 - 12:28 von Rene Weise | Report spam
Hallo,
ich habe Bitmaps (die ich von png einlese), die ich mit der unten stehender
Funktion als Icons speichern
möchte. Das geht zwar, jedoch gibt es keine Transparenz (wie bei den
Ausgangs-png's) und die Farben sehen eigenartig aus.

Was mache ich falsch?
besten dank
grüße
von rene

Private Function Save_Bitmap_As_Icon(ByVal bmp As Bitmap, ByVal Filename$)
As Boolean
Try
Dim ico As Icon = Icon.FromHandle(bmp.GetHicon())
Dim fs As New IO.FileStream(Filename, IO.FileMode.OpenOrCreate)
ico.Save(fs)
fs.Close()
Return True
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
 

Lesen sie die antworten

#1 Karsten Sosna
28/08/2007 - 08:43 | Warnen spam
Private Function Save_Bitmap_As_Icon(ByVal bmp As Bitmap, ByVal Filename$)
As Boolean
Try
Dim ico As Icon = Icon.FromHandle(bmp.GetHicon())
Dim fs As New IO.FileStream(Filename, IO.FileMode.OpenOrCreate)
ico.Save(fs)
fs.Close()
Return True
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function



Hallo Rene,
habe Deine Funktion mal getestet, also bei mir funktioniert es. Kann es
sein, das Deine PNGs gar keine sind. Probier mal folgendes:
\\\
Protected Overrides Sub OnPaint(ByVal e As
System.Windows.Forms.PaintEventArgs)
Using BM As New Bitmap("Dein.png")
e.Graphics.FillRectangle(Brushes.White, 0, 0, BM.Width, BM. Height)
e.Graphics.DrawImageUnscaled(BM, 0, 0)
e.Graphics.FillRectangle(Brushes.Black, BM.Width, 0, BM.Width, BM.
Height)
e.Graphics.DrawImageUnscaled(BM, BM.Width, 0)
End Using
End Sub
///
Also wenn dort wirklich transparente Farben sind, sollte das Bild einmal auf
weißen und einmal auf schwarzen Hintergrund erscheinen. Wenn das nicht der
Fall ist schau Dir mal die Datei im HexEditor an. An den ersten 4 Bytes
sollte 89 50 4E 47 (.PNG) stehen.
Gruß Scotty

Ähnliche fragen