Hallo,
Ich lade und speichere ein Bild in String und serializiere es als file.
So das Speichern klappt aber das Laden nicht. Es kommt dieser Fehler: Die Bytes [EA] im Index 29 können nicht von der angegebenen Codepage in Unicode übersetzt werden.
Mein Code
Was ist der Grund des Problems und wie kann ich es beheben?
vielen Dank
Ich lade und speichere ein Bild in String und serializiere es als file.
So das Speichern klappt aber das Laden nicht. Es kommt dieser Fehler: Die Bytes [EA] im Index 29 können nicht von der angegebenen Codepage in Unicode übersetzt werden.
Quellcode
- using System;
- using System.Drawing;
- using System.Drawing.Imaging;
- using System.IO;
- using System.Runtime.Serialization.Formatters.Binary;
- namespace PaintNetTestFileTyp
- {
- public class BinaryImage
- {
- public static Image Load(Stream filename)
- {
- var bf = new BinaryFormatter();
- return ImageFromBase64String(bf.Deserialize(filename).ToString());
- }
- public static void Save(Image img, Stream filename)
- {
- var bf = new BinaryFormatter();
- bf.Serialize(filename, ImageToBase64String(img, ImageFormat.Png));
- }
- public static string ImageToBase64String(Image image, ImageFormat format)
- {
- MemoryStream memory = new MemoryStream();
- image.Save(memory, format);
- string base64 = Convert.ToBase64String(memory.ToArray());
- memory.Close();
- return base64;
- }
- public static Image ImageFromBase64String(string base64)
- {
- MemoryStream memory = new MemoryStream(Convert.FromBase64String(base64));
- Image result = Image.FromStream(memory);
- memory.Close();
- return result;
- }
- }
- }
Was ist der Grund des Problems und wie kann ich es beheben?
vielen Dank