c#Winform程序,让pictureBox显示图像(包含GIF),并且不被占用,能即时删除图片。...

最近在做一个图片浏览的工具, 需要在PictureBox中显示图像文件, 包括gif播放。  且不能被程序独占, 就算winform的程序正在显示这张图, 也能在资源管理器里delete它。 

看了看网上的示例, 光一个显示gif图片,就有人在说用label代替pictureBox,然后设置为背景图片、有人在说使用GDI+ 来实现、有人在说CreateGraphics.  其实我也就预览下图片, 哪有这么麻烦。 只需要下面几行代码足矣。  

  代码如下:

    public void ShowImage(string path)
   {

      if ((this.pictureBox1.Image != null)) //先释放
        {
          pictureBox1.Image.Dispose();
          pictureBox1.Image = null;
        }


            Image img = Image.FromFile(path);   //加载图片
            MemoryStream mstr = new MemoryStream(); //创建新的MemoryStream
            img.Save(mstr, ImageFormat.Gif);        // 保存这个对象
            pictureBox1.Image = Image.FromStream(mstr); //显示
            img.Dispose();//释放占用
       //File.Delete(path);
}

 

 

 

不用爬墙用google:www.gaomn.com 

热图吧:www.retu8.com

8kmm图库:www.8kmm.com

转载于:https://www.cnblogs.com/jackrebel/p/3964495.html

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
存储图片到Oracle: ```c# using Oracle.DataAccess.Client; using System.Drawing; using System.IO; //连接Oracle数据库 string connString = "User Id=<username>;Password=<password>;Data Source=<datasource>"; OracleConnection conn = new OracleConnection(connString); conn.Open(); //将图片转换为字节数组 Image image = Image.FromFile("<imagePath>"); MemoryStream ms = new MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] imageBytes = ms.ToArray(); //插入图片数据到Oracle string sql = "INSERT INTO <tableName> (image_column) VALUES (:imageParam)"; OracleCommand cmd = new OracleCommand(sql, conn); OracleParameter param = new OracleParameter(":imageParam", OracleDbType.Blob); param.Value = imageBytes; cmd.Parameters.Add(param); cmd.ExecuteNonQuery(); //关闭连接 conn.Close(); ``` 读取Oracle中BLOB字段的图片显示PictureBox: ```c# using Oracle.DataAccess.Client; using System.Drawing; using System.IO; //连接Oracle数据库 string connString = "User Id=<username>;Password=<password>;Data Source=<datasource>"; OracleConnection conn = new OracleConnection(connString); conn.Open(); //查询图片数据 string sql = "SELECT image_column FROM <tableName> WHERE <condition>"; OracleCommand cmd = new OracleCommand(sql, conn); OracleDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { //从查询结果中读取图片数据 byte[] imageBytes = (byte[])reader["image_column"]; //将字节数组转换为Image对象 MemoryStream ms = new MemoryStream(imageBytes); Image image = Image.FromStream(ms); //将Image对象显示PictureBoxpictureBox1.Image = image; } //关闭连接 conn.Close(); ``` 其中 `<username>`、`<password>`、`<datasource>`、`<tableName>`、`<condition>` 需要根据实际情况进行替换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值