首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

silverlight中的byte []到BitmapImage

在这个问答内容中,我们需要将一个byte[]数组转换为BitmapImage对象。Silverlight是微软开发的一个跨平台的应用程序框架,它允许开发者创建丰富的Web应用程序和媒体体验。在Silverlight中,我们可以使用WriteableBitmap类将byte[]数组转换为BitmapImage对象。

以下是一个简单的示例代码,展示了如何将byte[]数组转换为BitmapImage对象:

代码语言:csharp
复制
using System.Windows.Media.Imaging;

public BitmapImage ConvertByteArrayToBitmapImage(byte[] byteArray)
{
    BitmapImage bitmapImage = new BitmapImage();
    bitmapImage.SetSource(new MemoryStream(byteArray));
    return bitmapImage;
}

在这个示例代码中,我们首先创建了一个BitmapImage对象,然后使用SetSource方法将MemoryStream对象设置为BitmapImage的源。MemoryStream对象是从byte[]数组创建的,这样就可以将byte[]数组转换为BitmapImage对象。

需要注意的是,在Silverlight中,BitmapImage对象不支持直接从byte[]数组创建,因此我们需要使用WriteableBitmap类或MemoryStream对象来实现转换。同时,由于Silverlight已经被微软弃用,因此建议使用其他更现代的技术框架,如WPF、UWP或Xamarin。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

silverlight如何将BitmapImage转化为Stream或byte数组?

上一篇"base64编码在silverlight使用"里已经提到WriteableBitmap对象可以借助FluxJpeg转化为base64字符串,而WriteableBitmap又能从BitmapSource...问题解决了 先将BitmapImage转化为WriteableBitmap,然后得到base64字符串,然后可以得到base64byte[]数组,再然后您可以把byte[]变成Stream 关键代码:...WriteableBitmap wb = new WriteableBitmap(img.Source as BitmapSource);//将Image对象转换为WriteableBitmap byte...[] b = Convert.FromBase64String(GetBase64Image(wb));//得到byte数组 将byte[]还原为图片: 1 byte[] b = ......//这里b为上面生成base64编码byte数组 2 MemoryStream ms = new MemoryStream(b); 3 BitmapImage bitImage = new BitmapImage

1K50
  • Silverlight

    Silverlight是基于时间线,不象Flash是基于帧,所以在Silverlight,很少看到有文档专门介绍SL帧。...但是我们从动画原理知道,动画只不过是一幅幅静态图片连续播放,利用人眼视觉暂留形成,因此任何动画从原理上讲,至少还是有每秒播放多少帧这个概念。...Silverlightsdk文档,有一段话: ... maxFramerate 值可通过 Silverlight 插件对象 maxframerate 参数进行配置。...maxframerate 参数默认值为 60。currentFramerate 和 maxFramerate 是报告每秒帧数 (fps) 值。实际显示帧速率设置为较低数字。...即sl每秒种默认最多播放60帧,当然我们也能用代码来改变该值(比如设置100),但最终sl的当前播放速度与硬件有关,并不是你想设多高就能达到多高。

    92960

    Java byte 取值范围为什么是 -128 +127

    首先要了解概念是 Java 中用补码表示二进制数,补码最高位代表符号位,最高位是 1 则表示为正数,最高位是 0 则表示为负数。 正数补码是本身,负数补码其绝对值二进制位按位取反后 +1。...即表示 -60 二进制表现形式 1100 0100。 回到正题,那么 byte 表示一个字节,一个字节是 8 位,最高位是符号位。...那么 8 位能表示最大值就是 0111 1111,换算成十进制就是 127。...最小负数就是1000 0000,(最大负数是 1111 1111 是负数-1补码),换算成十进制就是 -128, 1000 0000 是最小负数补码表示形式,我们把补码计算步骤倒过来就即可。...1000 0000 减 1 得 0111 1111 然后取反 1000 0000 因为负数补码是其绝对值取反,即 1000 0000 为最小负数绝对值,而 1000 0000 十进制表示是 128

    2.1K20

    Silverlight 3.0 WriteableBitmap

    Silverlight 3.0 WriteableBitmap 尽管矢量图形非常强大但是在有些情况下还是需要用到位图,因为他们在运行时能得到更高执行效率和渲染效果。...在Silverlight 2.0获得位图唯一途径就是从服务器下载并将其嵌入一个Image元素上。 在Silverlight 3.0添加了一个新图形类,WriteableBitmap。...他可以动态呈现位图,再结合上矢量图形一起运用,对于拍摄视频播放快照、生成算法内容(如分形图像)和数据可视化(如音乐可视化应用程序)很有用。...image.Margin = new Thickness(5); image.Source = wb; // 将Image元素放入容器控件...WriteableBitmap转PNG http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx

    60780

    base64编码在silverlight使用

    在传统.net应用,使用base64编码字符串是一件很轻松事情,比如下面这段代码演示了如何将本地文件转化为base64字符串,并且将base64字符串又还原为图片文件. base64编码在传统.net...程序应用(by 菩提树下杨过 ) using System; using System.Drawing; using System.Drawing.Imaging; using System.IO...; namespace Base64Study { /// /// base64编码在传统.net程序应用(by 菩提树下杨过 http://yjmyzz.cnblogs.com...MemoryStream(b);             Bitmap bitmap = new Bitmap(ms); return bitmap;         }     } } 但是到了silverlight...环境,这种简单操作方式却无法使用了,幸好网上有一个开源免费组件FluxJpeg,同时国外有高人已经利用该组件写出了将位图转化为base64方法,这里我们借用一下即可: 代码 <UserControl

    1.3K70

    Silverlight序列化

    序列化简言之是这样一种能力:能够把复杂对象(Object)变成某种格式字符串(常见格式有xml,string,二进制文件等),这样可以方便在各种系统传输或交换(比喻socket编程数据包只能用...byte[]传输),接收方得到该字符串后,通过反序列化可以还原为复杂对象,进而调用对象方法或属性 -- 跟反射有点沾边:) 这里先给出一个WinForm序列化例子,功能为通过打开文件对话框选择一个文件后...[] Body { set; get; } 121 122 } 123 } 不过在Silverlight,传统序列化方式有很多被精减掉了(比如BinaryFormatter之类),唯一得以保存只剩下...System.Xml.Serialization,所以SL只能通过xml来序列化对象(虽然xml序列化后字节数相对Binary有点大,不过我们也别无选择),另外有一点很让人不习惯是,需要序列化自定义类...(这一点让我郁闷了好久,还为此在网上疯狂百度,google为啥sl不识别Serializable) 1.先定义一个需要序列化类 自定义类 namespace SerializeDemo {

    73550

    Silverlight与WPFBeginInvoke差异

    Silverlight/WPF,如果要在多线程对界面控件值做修改,用Dispatcher对象BeginInvoke方法无疑是最方便办法 ,见:温故而知新:WinForm/Silverlight多线程编程如何更新...UI控件值 但今天发现WPFBeginInvoke却无法自动将匿名方法/Lambda表达式转变成Delegate类型(注:对委托,匿名方法,Lambda感到陌生朋友先阅读温故而知新:Delegate...,Action,Func,匿名方法,匿名委托,事件) silverlight代码片段: private void button1_Click(object sender, RoutedEventArgs...,同时还要定义相应委托类型,难道不能象Silverlght那样清爽一点么?...不过仍然有点疑问:为啥编译器能自动认别Silverlight,却不认WPF呢?这算不算是编译器BUG(或是需要改进地方)

    1K80

    socketbyte消息格式设计

    这二天在研究webabcdsocket多人聊天室,想尝试增加一些功能,比如:允许用户除发送文字外,还能发送图片或文件。...问题: socket发送数据时,只能发送byte[]数组,且无法附带其它用户自定义参数,服务端如何知道用户发过来是文字还是图片或是文件呢,所以只能在byte数组上动脑筋了. silverlight,...用户选择图片或文件,都能变成FileStream,近而变成byte数组,初步想法是在数组前后加一些标记之类,比如最开始几个字节是"img,txt,file"对应一个,这样服务端接收到以后,通过拆解分析就能知道用户发过来何种格式...[] b = UTF32Encoding.UTF8.GetBytes(msg);//模拟接收到byte数组 int _i1 = -1, _i2 = -1, _i3 = -1, _i4 = -1;/.../用来记录分隔字符“^”出现四次位置 for (int i = 0; i < b.Length; i++)             { if (b[i] == (byte)'^')

    75070

    Javabyte类型范围「建议收藏」

    Java为什么byte范围是 -128~127 在javabyte类型占8位 表示范围是0000 0000 ~ 1111 1111 总共256个数, javabyte类型有正负,最高位表示正负...我们先看正数: 0000 0000 ~ 0111 1111(原码)( 0 ~ 127,共128个数)我们知道在计算机系统,数值一律用补码来表示和存储。...正数原码,反码,补码均相同,所以在计算机补码,表示范围还是0~127 再看负数: 1000 0000 ~ 1111 1111(原码)(-0 ~ -127 也是128个数)我们先不看-0,我们先看...,其余位取反) 1111 1111 ~ 1000 0001(补码)(补码是在反码值上最后一位加1)所以在计算机1111 1111 ~ 1000 0001(补码)表示范围是也是 -1 ~ -127...(这里说没有对应原码和反码是相对于8个bit情况下,可以求出原码和反码但超出8个bit所能表达范围) 在计算机系统,数值一律用补码来表示和存储。

    1.9K10

    silverlightsocket编程注意事项

    换言之:如果socket能“感觉”马上还有数据要发送,而且在本次发送缓冲区还有空余时,它会自动把下次发送内容挪一部分过来,直到本次缓冲区填满,以便有效利用缓冲区,减少发送次数,至于它是如何感觉......”这一堆东西封装在struct,然后通过序列化最终得到一个byte[]进行发送。...另外如果最终得到byte[]太大,超过了数据下标所允许最大值(比如传递大文件时),会导致接收时反序列化失败,所以还得人工把大块头数据割成一块一块,这里有一个技巧:为了避免前面提到“scoket自我感觉良好...网络编程,会有各种不可控情况,所以异常捕获很重要,否则程序会用着用着就挂掉了。...必要时可以将连接关闭) 后话:很期待silverlight在未来版本,加入udp协议支持,这样应用范围将更加广泛。

    64990
    领券