C#Image.Clone到byte []导致EDIT.COM在Windows XP上打开

时间:2010-03-15 15:30:26

标签: c# .net-2.0 windows-xp

似乎克隆一个Image并将其转换为字节数组会导致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;
    }

由于

贾斯汀

2 个答案:

答案 0 :(得分:1)

这里没有猜测就很难帮助,所以我们走了:

在代码中的某个地方,您或外部库依赖/调用外部工具,称为“edit.exe”。也许,上帝保佑,甚至在数据库中触发的事情。程序员不关心扩展,在Process.StartInfo中写了“edit foo.bar”。 由于你的PATH和解析顺序(exe之前的com),这最终会在随附的机器上调用edit.com。

嗯 - 这真的不过是一个人为的故事,但我无法想象用你给出的代码启动任何应用程序的方法。尽量确定发生这种情况的确切位置。我怀疑这是你展示的转换/代码。

答案 1 :(得分:1)

经过大量的挖掘后,发现DevExpress的HyperLinkEdit出现了一些奇怪的现象。 Text值设置为“Edit”。我把它改名为“Edet”,问题就消失了。我将向DevExpress报告这一情况,以便进一步评估。

谢谢大家,

贾斯汀