相关疑难解决方法(0)

Bitmap.Clone()和新的Bitmap(Bitmap)有什么区别?

据我所知,有两种方法可以复制位图.

Bitmap.Clone()

Bitmap A = new Bitmap("somefile.png");
Bitmap B = (Bitmap)A.Clone();
Run Code Online (Sandbox Code Playgroud)

新的位图()

Bitmap A = new Bitmap("somefile.png");
Bitmap B = new Bitmap(A);
Run Code Online (Sandbox Code Playgroud)

这些方法有何不同?我对内存和线程方面的差异特别感兴趣.

c# clone bitmap

70
推荐指数
2
解决办法
4万
查看次数

新Bitmap(filePath)锁定的免费文件

我有一个PictureBox的图像指向某个文件"A".在执行时我想将PictureBox的图像更改为另一个"B"但我收到以下错误:

"mscorlib.dll中出现'System.IO.IOException'类型的第一次机会异常附加信息:进程无法访问文件"A",因为它正由另一个进程使用."

我将Image设置如下:

pbAvatar.Image = new Bitmap(filePath);
Run Code Online (Sandbox Code Playgroud)

如何解锁第一个文件?

c# image file picturebox

38
推荐指数
5
解决办法
4万
查看次数

在Winforms中显示动画gif而不锁定文件

我正在尝试在Winforms应用程序中显示各种文件类型的图像(包括动画.gif文件).我还必须能够修改显示的文件.(更改文件名,删除它们).

问题是Picturebox锁定图像文件,直到应用程序关闭时使用正常方式.

这意味着我不能这样做:

private void Form1_Load(object sender, EventArgs e)
    {

        PictureBox pic = new PictureBox();
        pic.Size = new Size(250, 250);
        pic.Image = Image.FromFile("someImage.gif");
        this.Controls.Add(pic);

                    //No use to call pic.Image = null or .Dispose of it
        File.Delete("someImage.gif"); //throws exception
    }
Run Code Online (Sandbox Code Playgroud)

上面链接中的解决方法如下:

    private void Form1_Load2(object sender, EventArgs e)
    {
        PictureBox pic = new PictureBox();
        pic.Size = new Size(250, 250);
                    //using a FileStream
        var fs = new System.IO.FileStream("someImage.gif", System.IO.FileMode.Open, System.IO.FileAccess.Read);
        pic.Image = System.Drawing.Image.FromStream(fs);
        fs.Close();

        this.Controls.Add(pic);

        pic.MouseClick += …
Run Code Online (Sandbox Code Playgroud)

.net c# window visual-studio-2010 winforms

4
推荐指数
1
解决办法
3264
查看次数

标签 统计

c# ×3

.net ×1

bitmap ×1

clone ×1

file ×1

image ×1

picturebox ×1

visual-studio-2010 ×1

window ×1

winforms ×1