取到的图片类型是Object型的,需要读取出来在picturebox里显示,但是捕获的错误是:参数无效 rd.GetFldVal("pic", out ob);//ob类型是Object型的,取出来的是有值的乱码
MemoryStream s = new MemoryStream();
s.Position = 0;
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(s, ob);
byte[] mybytes = s.ToArray();
MemoryStream ms = new MemoryStream(mybytes);
try
{
Image img = Image.FromStream(ms);//img没有值
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message.ToString());//提示参数无效
}
应该怎么做呢?
MemoryStream s = new MemoryStream();
s.Position = 0;
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(s, ob);
byte[] mybytes = s.ToArray();
MemoryStream ms = new MemoryStream(mybytes);
try
{
Image img = Image.FromStream(ms);//img没有值
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message.ToString());//提示参数无效
}
应该怎么做呢?
是string型的,那应该怎么处理呢?
我是在做二次开发,尝试了一下,修改了图片的文件名,发现在原软件里不能显示图片了,而修改回来文件名后就能显示,应该存储的是路径。但是或取到的string是乱码,这个怎么弄呢?
//byte[] byteStream = System.Text.Encoding.Default.GetBytes((string)ob);
//byte[] yy = System.Text.Encoding.BigEndianUnicode.GetBytes((string)ob);
byte[] y1 = System.Text.Encoding.Unicode.GetBytes((string)ob);//发现数组长度正好为图片路径和扩展名的长度
//byte[] y2 = System.Text.Encoding.UTF8.GetBytes((string)ob);
string a = System.Text.Encoding.ASCII.GetString(y1);//发现使用ASCII正好恢复了路径
//string b = System.Text.Encoding.Unicode.GetString(y1);
//string c = System.Text.Encoding.BigEndianUnicode.GetString(byteStream);