Was ist der Unterschied zwischen File.WriteAllBytes und FileStream.Write/WriteBytes? Ich habe ein Bitmap-Objekt und möchte eine neue bmp/jpg/png auf der Festplatte erstellen. Ich glaube, ich habe irgendwo gelesen, dass WriteAllBytes FileStream.Write verwendet?
Antworten
Zu viele Anzeigen?WriteAllBytes
ist nur eine praktische Methode, die die zugrunde liegenden Stream
-Operationen umschließt. (Eine Datei erstellen, in den Stream schreiben, Stream schließen usw.). Verwenden Sie es, wenn es Ihren Bedürfnissen entspricht. Wenn Sie mehr Kontrolle über die zugrunde liegenden Operationen benötigen, greifen Sie auf die Verwendung eines Stream
oder ähnliches zurück.
Es geht darum, die richtige Abstraktion für die Aufgabe zu verwenden.
Sie sind mit diesem auf dem falschen Weg. Das Speichern eines Bitmap-Objekts erfordert Image.Save(). Das ist eine Methode, die weiß, wie man einen Bildcodierer verwendet, um ein Bitmap in die Bytes umzuwandeln, die ein anderes Programm (oder Ihres) wieder laden kann. Es gibt mehrere Bildcodierer, Sie können den gewünschten mit der Save()-Überladung auswählen, die es Ihnen ermöglicht, das ImageFormat auszuwählen. Das BMP-Format ist das native Windows-Format, es ist unkomprimiert. Das PNG-Format ist schön, es ist ein komprimiertes verlustfreies Format. Das JPEG-Format ist ein komprimiertes verlustbehaftetes Format, gut für Fotos. Die Dateigröße ist von groß nach klein geordnet.