请问如何将剪贴板中的数据(图象)保存到字节数组中去?

jonsonzxw 2003-02-08 05:34:36
private void button2_Click(object sender, System.EventArgs e)
{
IDataObject d = Clipboard.GetDataObject();
if(d.GetDataPresent(DataFormats.Bitmap))
{
Bitmap b = (Bitmap)d.GetData(DataFormats.Bitmap);

Byte[] byteBLOBData = new Byte[0];
byteBLOBData = (Byte[])b; // 这里会出错,无法完成转换
MemoryStream stmBLOBData = new MemoryStream(byteBLOBData);
pictureBox1.Image= Image.FromStream(stmBLOBData);

}
else
{
MessageBox.Show("No bitmap information was contained in the clipboard.");
}
}
多谢各位解答!!

...全文
45 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ArLi2003 2003-06-10
  • 打赏
  • 举报
回复
你应该:

IDataObject d = Clipboard.GetDataObject();
if (d.GetDataPresent(typeof(System.Drawing.Bitmap))) {
Bitmap b = (Bitmap)d.GetData(typeof(System.Drawing.Bitmap));
this.pictureBox1.Image = b;
}

你的程序错误如下:

1,byteBLOBData 是长度为0的byte[] 怎么能存东西,付值当然出错?
2,Bitmap 是不能隐或显式的转成Byte[]
isleepy 2003-06-10
  • 打赏
  • 举报
回复
private void button2_Click(object sender, System.EventArgs e)
{
IDataObject d = Clipboard.GetDataObject();
if(d.GetDataPresent(DataFormats.Bitmap))
{
Bitmap b = (Bitmap)d.GetData(DataFormats.Bitmap);

Byte[] byteBLOBData = new Byte[0];
//byteBLOBData = (Byte[])b; // 这里会出错,无法完成转换
//MemoryStream stmBLOBData = new MemoryStream(byteBLOBData);
//pictureBox1.Image= Image.FromStream(stmBLOBData);
pictureBox1.Image= b; //为什么不这样?为什么要用Byte[]??

}
else
{
MessageBox.Show("No bitmap information was contained in the clipboard.");
}
}
jonsonzxw 2003-02-09
  • 打赏
  • 举报
回复
up
jonsonzxw 2003-02-09
  • 打赏
  • 举报
回复
无法完成转换
caosheng 2003-02-08
  • 打赏
  • 举报
回复
gz
coollzh 2003-02-08
  • 打赏
  • 举报
回复
有什么问题?

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧