Silverlight中用Stream作为图片源进行加载
几经周折..发现自己真的很笨! 有很多人想用Silverlight做个验证码之类的东西,但是考虑到Silverlight没有画图的功能就都直接用ASP.net给实现了. 今天想了想..有个笨办法~ 搞一个WCF服务,里面写
[OperationContract] public object[] AttackDef() { object[] c = new object[2]; Bitmap B = new Bitmap(20, 20); Graphics G = Graphics.FromImage(B); G.Clear(Color.Black); G.Dispose(); MemoryStream S = new MemoryStream(); B.Save(S, System.Drawing.Imaging.ImageFormat.Png); B.Dispose(); c[0] = S.ToArray(); c[1] = "一些数据"; return c; }
当然,什么都没做,只是为了测试和构建一个可行的方案~
在SL程序里面:
(SLC是WCF的Proxy对象)
先调用
SLC.AttackDefCompleted += new EventHandler<AttackDefCompletedEventArgs>(SLC_AttackDefCompleted);
SLC.AttackDefAsync();
然后有
void SLC_AttackDefCompleted(object sender, AttackDefCompletedEventArgs e) { BitmapImage B = new BitmapImage(); MemoryStream M = new MemoryStream(); M.Write((byte[])e.Result[0], 0, ((byte[])e.Result[0]).Length); B.SetSource(M); 你的Image控件.Source = B; }
于是。。图片就被解码,加码,解码。。出来了。
中间有很多非常倒霉的问题,比如说图片格式,如果设定成BMP就会Crash。它告诉你:
毁灭性错误。
。。我也毁灭了。。。。
很简单的东西,只是框架和可行性的实验,要是需要使用,请更改WCF服务中的逻辑,String是为了传回核对数据用的。。WCF服务不太适用远程直接核对。。太不安全了。
高手们直接忽略我的记事。。这。。。。见笑
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述