BinaryFormatter.Serialize (Image) - ExternalException - W GDI + wystąpił ogólny błąd
Kiedy próbuję serializowaćtrochę obrazy używające BinaryFormatter, otrzymam ExternalException - w GDI + wystąpił ogólny błąd. "Po zadrapaniu głowy przez chwilę, postanowiłem stworzyć prosty projekt testowy, aby zawęzić problem:
static void Main(string[] args)
{
string file = @"C:\temp\delme.jpg";
//Image i = new Bitmap(file);
//using(FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read))
byte[] data = File.ReadAllBytes(file);
using(MemoryStream originalms = new MemoryStream(data))
{
using (Image i = Image.FromStream(originalms))
{
BinaryFormatter bf = new BinaryFormatter();
using (MemoryStream ms = new MemoryStream())
{
// Throws ExternalException on Windows 7, not Windows XP
bf.Serialize(ms, i);
}
}
}
}
W przypadku konkretnych obrazów próbowałem różnych sposobów ładowania obrazu i nie mogłem go uruchomić w systemie Windows 7, nawet podczas uruchamiania programu jako Administrator.
Skopiowałem dokładnie ten sam plik wykonywalny i obraz do mojej instancji systemu Windows XP VMWare i nie mam żadnych problemów.
Czy ktoś ma pojęcie, dlaczego niektóre obrazy nie działają pod Windows 7, ale działają pod XP?
Oto jeden z obrazów:http://www.2shared.com/file/7wAXL88i/SO_testimage.html
delme.jpg md5: 3d7e832db108de35400edc28142a8281