Color, Brush und die RGB Farben. Alles Read Only?

15/12/2008 - 08:41 von Wiederanders | Report spam
Hallo NG,

ich bin ein Hobby Programmierer und versuche gerade einige
Grafikeinstellungen in meiner Anwendung zu speichern. Dabei habe ich
einige grundlegende Probleme mit Color und Brush.

Zuerst möchte ich die Farbe einlesen, mit der auf eine Bitmap
geschrieben werden soll.







'Grafikobjekt erstellen
Dim g As Graphics = Graphics.FromImage
(My.Resources.TopControll_Button_128x40)

'Ermitteln einer Farbe
Dim myColorDialog As New ColorDialog
Dim myColor As Color
If not myColorDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
return false
myColor = myColorDialog.Color
<<

Es ist nur so, dass die Methode DrawString einen Brush verlangt und
keine Color. ColorDialog erzeugt jeodch kein Brush. Hier müsste man
den Wert konvertieren!? Besteht ein Brush nicht auch aus R, G, B
Farben?








'Text vorberieten
Dim text1 As String = "Ein Test"
Dim rect1 As New Rectangle(0, 0, 100, 40)
Dim font1 As New Font("Arial", 8, FontStyle.Regular,
GraphicsUnit.Point)
Dim stringFormat As New StringFormat()
stringFormat.Alignment = StringAlignment.Center
stringFormat.LineAlignment = StringAlignment.Center

'Color zu Brush konvertieren
Dim myBrush As Brush = myColor 'FEHLER! So ist das nicht moeglich!

'Text zeichnen.
g.DrawString(text1, font1, myBrush, rect1, stringFormat)
<<

1. Frage: Wie kann ich eine Color in einen Brush konvertieren?

2. Frage: Wie kann ich einen Brush in einer Datei speichern? Ich
verwendte meistens Binàre Serilisation, nur ist ein Brush nicht
serialisierbar. Aus einem Color Objekt kann ich zwar die R, G, B Bytes
auslesen (Bytes sind ja serialisierbar), aber es gibt keine New
Funktion, mit der ich eine neue Grafik erstellen könnte. Zusàtzlich
sind die Farbwerte Read only.
dim c as new color
c.g = 123 'Fehlermeldung, die Werte sind Read only!

Vermutlich fehlt mir die Entscheidente Information wie man die RGB
Daten in und aus einem Brush oder einer Color liest und schreibt...
Jede Hilfestellung, auch ein Link zu einer Dokumentation würden mir
sehr weiterhelfen.

Viele Grüße und vielen Dank im Vorraus
Niels Wiederanders
 

Lesen sie die antworten

#1 Wiederanders
15/12/2008 - 09:56 | Warnen spam
2. Frage: Wie kann ich einen Brush in einer Datei speichern? Ich
verwendte meistens Binàre Serilisation, nur ist ein Brush nicht
serialisierbar. Aus einem Color Objekt kann ich zwar die R, G, B Bytes
auslesen (Bytes sind ja serialisierbar), aber es gibt keine New
Funktion, mit der ich eine neue Grafik erstellen könnte. Zusàtzlich
sind die Farbwerte Read only.
dim c as new color
c.g = 123 'Fehlermeldung, die Werte sind Read only!



Frage 2 hat sich erledigt:
Dim c As Color = Color.FromArgb()
ist hier die Lösung des Problemes. Bleibt noch die Frage offen, wie
man eine eine Color in eine Brush

Viele Grüße und vielen Dank im Vorraus
Niels Wiederanders

Ähnliche fragen