WPF base64string转化为图片出现参数无效错误

lisweden 2012-03-29 11:23:49
如题,有遇到过这类问题的,看下如何解决,谢谢!

代码如下:


string base64Str = e.Parameter.ToString();
byte[] arr = Convert.FromBase64String(base64Str);
using (MemoryStream ms = new MemoryStream(arr))
{
ms.Seek(0, SeekOrigin.Begin);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
Bitmap m = new Bitmap(img);
IntPtr hBitmap = m.GetHbitmap();
BitmapSizeOptions bso = BitmapSizeOptions.FromEmptyOptions();
BitmapSource bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty, bso);
Clipboard.SetImage(bs);
}

...全文
289 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lisweden 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

打断点看看base64Str里存的是什么东西啊。
[/Quote]

base64Str里是这一驼东西:
IAAASABwAWGFtbC9Eb2N1bWVudC54YW1sIKIYACig....还很长
lisweden 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

这句就错了:string base64Str = e.Parameter.ToString();
如果你的e.Parameter本身就是String类型的, 哪来的ToString?如果你的e.Parameter是byte[],那么ToString的结果就是“System.Byte[]”
[/Quote]

e.Parameter是object类型的
qldsrx 2012-03-29
  • 打赏
  • 举报
回复
这句就错了:string base64Str = e.Parameter.ToString();
如果你的e.Parameter本身就是String类型的, 哪来的ToString?如果你的e.Parameter是byte[],那么ToString的结果就是“System.Byte[]”
lisweden 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

我都是直接创建Bitmap对象,没有用到Image来转换,也没遇到过Lz所说的错误情况

System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(ms);

IntPtr hBitmap = bmp.GetHbitmap();

System.Windows.Media.Imaging.BitmapSource bitmapSour……
[/Quote]

System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(ms);也同样报:参数无效的错误

沝林 2012-03-29
  • 打赏
  • 举报
回复
我都是直接创建Bitmap对象,没有用到Image来转换,也没遇到过Lz所说的错误情况

System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(ms);

IntPtr hBitmap = bmp.GetHbitmap();

System.Windows.Media.Imaging.BitmapSource bitmapSource =
System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
hBitmap, IntPtr.Zero, System.Windows.Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
lisweden 2012-03-29
  • 打赏
  • 举报
回复
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);这句报错
assky124 2012-03-29
  • 打赏
  • 举报
回复
打断点看看base64Str里存的是什么东西啊。

110,539

社区成员

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

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

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