Frage

Es gibt eine Möglichkeit festzustellen, ob ich das richtige Byte-Array an den MemoryStream übergebe, wenn ich ein Bild aus dem Byte-Array erstellen möchte.

MemoryStream mStream = new MemoryStream();
mStream.Write(byteArray, 0, byteArray.Lenth);
Image imgObj = Image.FromStream(mStream);

Wie kann ich, wenn möglich Richtig das byteArray, dass es ein gültiges byteArray für ein Bild ist?

War es hilfreich?

Lösung 4

Hier ist die Antwort Bildverarbeitung für Dummies mit C # und GDI +

ot: Ich weiß nicht, wie ich Links auf Kommentare einfügen soll, damit ich es in die Antworten habe.

Andere Tipps

Das ist eine wirklich bedrohliche Frage. Sie müssen doch wissen, woher Sie Ihre Daten lesen?Wenn Sie ein Bild erstellen mit Image.FromStream, ein ArgumentException wird ausgelöst, wenn das Format nicht erkannt werden kann.Warum nutzen Sie diesen Mechanismus nicht zur Identifizierung eines falschen Datenstroms, anstatt das Rad neu zu erfinden?

Ich habe mir ein bisschen programmatische Bildmanipulation gemacht.Die Sache, die Sie tun möchten, ist, die Spezifikation für das Bildformat zu finden, das Sie ändern, und stellen Sie sicher, dass Sie von Evertreck-Sie tun.Beispielsweise sind PNG-Dateien chunked und haben auf jedem Abschnitt Prüfsummen, wenn Sie also etwas in diesem Chunk ändern, müssen Sie die Prüfsumme am Ende des Abschnitts neu berechnen.

Nachdem ich Ihre Fragen und Ihre Kommentare gelesen hatte, denke ich, was Sie versuchen, das Bild zu manipulieren, indem Sie das Byte-Array manipulieren, bevor Sie ihn in die Bildklasse setzen.Und jetzt behaupten Sie, dass Ihr Byte-Array für dieses Bildformat beschädigt ist und wie Sie es korrigieren können.

Die Antwort auf diese Frage wäre: Sie wären: Sie haben es beschädigt, Sie werden es beheben.

Aber um Ihr Problem wirklich zu lösen, wenn Ihr Ziel das Bild selbst manipulieren soll, laden Sie es einfach in einen Interims generationspflichtig/system.drawing.graphics.aspx "rel=" nofollow noreferrer "> Image -Klasse, um Ihr Bild zu manipulieren.Danach setzen Sie das Ergebnis in das Real -Bildobjekt, das Sie möchten.Bereit ohne Ärger, an dem Byte-Array zu arbeiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top