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服务不太适用远程直接核对。。太不安全了。
 
高手们直接忽略我的记事。。这。。。。见笑
posted @   struggle-luan  阅读(1551)  评论(7编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示