Laden...

Bild verschicken

Erstellt von Hunv vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.685 Views
Hunv Themenstarter:in
193 Beiträge seit 2005
vor 16 Jahren
Bild verschicken

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

1.433 Beiträge seit 2006
vor 16 Jahren

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

Hunv Themenstarter:in
193 Beiträge seit 2005
vor 16 Jahren

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

3.728 Beiträge seit 2005
vor 16 Jahren
Byte[]

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[].

Hunv Themenstarter:in
193 Beiträge seit 2005
vor 16 Jahren

[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

B
200 Beiträge seit 2006
vor 16 Jahren

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