复制System.Drawing.Image类,不带引用

时间:2016-01-17 20:41:23

标签: c# image reference

我需要复制Image类。尝试了clone(),但没有成功。也搜索了它并发现MemberwiseClone(),但我想我无法访问Image类。还尝试了this解决方案,猜测它不起作用。有没有想法如何复制Image类而没有引用?

2 个答案:

答案 0 :(得分:3)

Bitmap(继承自Image的构造函数重载会创建副本:

Bitmap copy = new Bitmap(image);

答案 1 :(得分:0)

我的坏。有愚蠢的错误。下面的解决方案也可以正常工作。

private Image DeepCopy(Image other)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                BinaryFormatter formatter = new BinaryFormatter();
                formatter.Serialize(ms, other);
                ms.Position = 0;
                return (Image)formatter.Deserialize(ms);
            }
        }

Image tempImg = DeepCopy(img);

此外,这也有效:

Image tempImg = (Image)img.Clone();