Ich versuche, all die pngs in einem Ordner zu konvertieren pngs nQuant mit 8bpp. Ich habe versucht, mit dem folgenden Code:Lesen und Schreiben auf demselben Filestream
foreach (string file in Directory.GetFiles(tempFolderPath, "*.png", SearchOption.TopDirectoryOnly))
{
using (MemoryStream memory = new MemoryStream())
{
using (FileStream fs = new FileStream(file, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
using (Bitmap image = new Bitmap(fs))
{
using (Image quantized = quantizer.QuantizeImage(image))
{
quantized.Save(memory, ImageFormat.Png);
byte[] bytes = memory.ToArray();
fs.Write(bytes, 0, bytes.Length);
}
}
}
}
}
Dies funktioniert jedoch nicht. Keine Ausnahmen. Einfach nur nicht in die Datei schreiben. Ich habe es mit diesem Arbeitscode ersetzt.
Bitmap image;
foreach (string file in Directory.GetFiles(tempFolderPath, "*.png", SearchOption.TopDirectoryOnly))
{
using (FileStream fso = new FileStream(file, FileMode.Open, FileAccess.ReadWrite))
{
image = new Bitmap(fso);
}
using (MemoryStream memory = new MemoryStream())
{
using (FileStream fs = new FileStream(file, FileMode.Create, FileAccess.ReadWrite))
{
using (Image quantized = quantizer.QuantizeImage(image))
{
quantized.Save(memory, ImageFormat.Png);
byte[] bytes = memory.ToArray();
fs.Write(bytes, 0, bytes.Length);
}
}
}
}
Scheint, wie FileMode.OpenOrCreate
man tun kann, oder das andere, aber nicht beides.
Gibt es trotzdem auf die gleichen FileStream
zu lesen und schreiben?
am folgenden 'C# Stackoverflow Lesen eine schnelle Google-Suche und Schreiben auf gleiche FileStream' – MethodMan
@MethodMan Ja fand ich [diese] (http://stackoverflow.com/questions/605685/how-to-both-read -und-schreibe-eine-Datei-in-c-sharp) und ich benutzte die beste Antwort. Ich fand auch [dies] (http://stackoverflow.com/questions/33633344/read-and-write-to-a-file-in-the-same-stream) und versuchte, fs.Flush() hinzuzufügen, aber das auch hat nicht funktioniert. – I23BigC