导航
  • 主页
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm
  • WPF
  • 问答

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

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.");
}
}
多谢各位解答!!

...全文
14 点赞 收藏 6
写回复
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
有什么问题?
回复
发动态
发帖子
C#
创建于2007-09-28

10.4w+

社区成员

.NET技术 C#
申请成为版主
社区公告

全世界最好的语言,没有之一.