【发布时间】:2010-03-15 15:30:25
【问题描述】:
似乎克隆图像并将其转换为字节数组会导致 EDIT.COM 在 Windows XP 计算机上打开。这不会发生在 Windows 7 机器上。该应用程序是 C# .NET 2.0 应用程序。有谁知道为什么会发生这种情况?
这是我的图像转换代码:
public static byte[] CovertImageToByteArray(Image imageToConvert)
{
imageToConvert.Clone() as Image;
if(clone == null)
return null;
imageToConvert.Dispose();
byte[] imageByteArray;
using (MemoryStream ms = new MemoryStream())
{
clone.Save(ms, clone.RawFormat);
imageByteArray = ms.ToArray();
}
return imageByteArray;
}
public static Image ConvertByteArrayToImage(byte[] imageByteArray,
ImageFormat formatOfImage)
{
Image image;
using (
MemoryStream ms = new MemoryStream(imageByteArray, 0,
imageByteArray.Length))
{
ms.Write(imageByteArray, 0, imageByteArray.Length);
image = Image.FromStream(ms, true);
}
return image;
}
谢谢
贾斯汀
【问题讨论】:
-
它是一个特定的图像吗?图像可能格式错误并包含漏洞利用/shellcode。
-
不,它似乎是任何图像。我将在几台不同的机器上测试其他几个。
-
图像是 System.Drawing.Image 类型
-
不管是什么图像或格式。发生在 Windows XP 和 Windows 2000 机器上。我没有尝试过 Vista,但它不会发生在 Windows 7 上。
-
可能是因为 Win7 不再有 edit.com。你如何保存这些图像?文件扩展名是什么?
标签: c# .net-2.0 windows-xp