Hi
Ich habe ein Problem.
Und zwar versende ich beim Remoting eine Variable vom Typ Bitmap vom Server
an den Client.
Wenn ich diese aber auf dem Client anzeigen möchte bekomme ich den Fehler
"Das Feld nativeImage kann nicht in Typ System.Drawing.Image gefunden
werden." und das VS makiert mir "Application.Run(new Form1());".
Auf englisch heißt der Fehler "Remoting can not find field 'nativeImage' on
type 'System.Drawing.Image'."
Visit me @ www.beremote.net
Poste doch mal den Code, was Deine Applikation tun soll (ausser Bilder verschicken) und aus welchem Kontext diese Funktion verwendet werden soll (z. Bsp. Ein Bild wurde geöffnet und kann dann versendet werden) eventuell kann Dir dann besser geholfen werden.
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Das Bild wird Serverseitig erst generiert und soll dann verschickt werden.
Die Befehle, die dies tun sehen wie folgt aus:
Client:
//Der Client ruft diese Funktion auf und der Server generiert die Minimap bzw. schickt eine im Cache gespeicherte Minimap.
public static void GetMinimap()
{
picMinimap.Image = remServer.GetMinimap().MiniMap;
}
Server:
//Client holt sich die Minimap. Die Minimap vom Typ Bitmap und der Zeitpunkt der Generierung vom Typ DateTime wird in tmpMm gesetzt.
//generateMinimap() erzeugt eine neue Minimap, falls noch keine da ist. Ansonsten wird sie aus einer Variablen geladen.
public miniMap GetMinimap(int playerId)
{
miniMap tmpMm = new miniMap();
tmpMm.MiniMap = generateMinimap();
tmpMm.MiniMapTime = settingsAndInformations.MiniMapTime;
return (tmpMm);
}
Visit me @ www.beremote.net
Hallo Hunv,
deine Klasse "miniMap" muss serialisierbar sein, damit Du Instanzen davon vom Server an den Client senden kannst. Ist die Klasse serialisierbar?
Bilder überträgt man vorzugsweise als byte[].
[Serializable()]
public class miniMap
{
private Bitmap _miniMap = new Bitmap(1, 1);
private DateTime _miniMapTime = new DateTime();
[...]
}
In wiefern als byte[] wie wandel ich denn ein Bitmap in ein byte[] um?
Visit me @ www.beremote.net
Hall Hunv,
In wiefern als byte[] wie wandel ich denn ein Bitmap in ein byte[] um?
So:
static byte[] GetBytesFromBitmap(Bitmap bmp) {
MemoryStream ms = new System.IO.MemoryStream();
bmp.Save(ms, ImageFormat.Bmp);
byte[] buffer = ms.ToArray();
ms.Close();
return buffer;
}
mfg ben