繁体   English   中英

检索图像时参数无效

[英]Parameter is not valid when i retrieve Image

string nama = dgGambar1.Rows[e.RowIndex].Cells["nama_gambar"].FormattedValue.ToString();
btnTambahDataBarang.Enabled = false;
koneksi.Open();
MySqlCommand command = new MySqlCommand("SELECT * FROM and_bwi_gambar WHERE nama_gambar = '" + nama + "'", koneksi);
MySqlDataReader rd;
rd = command.ExecuteReader();
while (rd.Read())
{
  txtGambar1.Text = rd.GetValue(2).ToString();
  byte[] img = (byte[])rd.GetValue(3);
  MemoryStream ms = new MemoryStream(img);
  pbGambar1.Image = Image.FromStream(ms);
}
koneksi.Close();

当我检索大小超过 250kb 的图像时,它总是会出现错误“参数参数无效”

可能有 2 个选项可以解决此问题:

  1. 使用图像转换器:
    byte[] buffer = (byte[])rd.GetValue(3);
    using(var memStream = new MemoryStream(buffer))
    {
        var ic = new System.Drawing.ImageConverter();
        pbGambar1.Image = (System.Drawing.Image)ic.ConvertFrom(stream.ReadAllBytes());
    }
  1. 或者先尝试将二进制数据加载到 memory stream 中:
    byte[] buffer = (byte[])rd.GetValue(3);
    using(var memStream = new MemoryStream(buffer))
    {
        memStream.Position = 0;
        pbGambar1.Image = System.Drawing.Image.FromStream(memStream, false);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM