Я конвертирую партию .bmp в .png. Это соответствующая часть кода:
foreach (string path in files) {
using (fs = new FileStream(path, FileMode.Open)) bmp = new Bitmap(fs);
using (ms = new MemoryStream()) {
bmp.Save(ms, ImageFormat.Png);
bmp.Dispose();
png = Image.FromStream(ms);
}
png.Save(path);
}
В строке bmp.Save(ms, ImageFormat.Png);
выдается следующее исключение:
System.Runtime.InteropServices.ExternalException: «Произошла общая ошибка в GDI +.»
Согласно MSDN это означает, что изображение было сохранено в неправильном формате или в том же месте, откуда оно было прочитано. Последнее не так. Однако я не понимаю, как я указал неправильный формат: на той же странице MSDN приведен пример, в котором .bmp преобразуется в .gif таким же образом.
Это связано со мной при сохранении в MemoryStream? Это сделано для того, чтобы я мог перезаписать исходный файл преобразованным. (Обратите внимание, что суффикс .bmp хранится намеренно. Это не должно быть проблемой, поскольку исключение появляется до сохранения окончательного файла.)