Frage von Blackskater, 26

Hat einer eine Ahnung wie man diesen Fehler beheben kann?

Ich versuche die ganze Zeit in VB ein Image in ein Byte-Array zu konvertieren

Private Function ConImgTobyte(ByVal stream As FileStream()) As Byte() Dim M As New MemoryStream() PictureBox1.Image.Save(stream, Imaging.ImageFormat.Jpeg) End Function

Bei "Save" kommt immer ein Error. Aber warum ?

Antwort
von CrystalixXx, 11

Was soll das denn werden?

  • eine allgemein Funktion sollte nicht auf die GUI zugreifen; nutze die Parameter
  • der Parameter "stream" ist ein Array von "FileStream"; entferne die Klammern nach "FileStream"
  • du erzeugst einen MemoryStream, den du nie verwendest
  • deine Funktion gibt keinen Wert zurück
  • es fehlt eine Ausnahmebehandlung

Alles in allem ist dein Code ein einziger Fehler. Da heißt es nur: löschen und neu machen.

Was genau hast du denn vor? Dann wissen wir, wo wir helfen können.

Kommentar von Blackskater ,

Ja, stimmt. Den MemoryStream verwende ich nicht. Das war vor dem vorherigen Code noch da. War unnötig. Meine eigentliche Idee war, ein image über TCP zu versenden. Das alles wollte ich über den Streamwriter etc.. machen. Ich wolte zuerst eben das Image in ein Byte-Array konvertieren. Die Funktion war aber fail... Mit BinaryFormattern gehts aber auch gut sowiet ich weiß.

Kommentar von CrystalixXx ,

So ganz einfach ist das Senden und Empfangen von Daten über TCP nicht, wenn man alles dazu selbst programmieren möchte. Für solche Zwecke wäre es clever eine vorhandene Bibliothek zu benutzen.

Ansonsten sind vielleicht die Socket-Klasse oder TcpClient-Klasse aus dem System.Net.Sockets-Namespace hilfreich. Wenn es aber nur darum geht eine Datei als ByteArray vorliegen zu haben, dann kannst du die Methode System.IO.File.ReadAllBytes("Dateipfad") verwenden.

Antwort
von Moritz30, 19

Was für eine Fehlermeldung wird angezeigt?

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten