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

我可以从Silverlight中的BitmapImage获取byte []吗?

当然可以。在Silverlight中,可以使用WriteableBitmap类将BitmapImage转换为byte[]。以下是一个简单的示例:

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

public byte[] ConvertBitmapImageToByteArray(BitmapImage bitmapImage)
{
    WriteableBitmap writeableBitmap = new WriteableBitmap(bitmapImage);
    MemoryStream memoryStream = new MemoryStream();
    writeableBitmap.SaveJpeg(memoryStream, writeableBitmap.PixelWidth, writeableBitmap.PixelHeight, 0, 100);
    return memoryStream.ToArray();
}

这个方法将BitmapImage转换为WriteableBitmap,然后将其保存为JPEG格式的byte[]。您可以根据需要调整JPEG质量和其他参数。

请注意,这个方法仅适用于Silverlight。如果您使用的是其他编程环境或平台,可能需要使用不同的方法来实现相同的功能。

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

相关·内容

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

win10 uwp 存放网络图片到本地 下载图片保存图片本地打开所有代码Nuget安装

有时候我们网络很垃圾,UWP要在第一次打开网络图片,就把图片存放到本地,下次可以本地打开。 有时候用户使用是流量网络,不能每次都联网下载。 我们不得在应用存放用户打开图片。...这就是先把图片下载,然后显示出来,存放到本地,接着下次要使用就可以本地获取。 最好这个和我们用户是透明,我们不知道图片在哪,是本地还是网络,只要给一个Uri就有一个图片。...这里图片BitmapImage,Uri是输入网络 下载图片 图片也是和其他一样,我们可以简单用系统给网络web下载。 我们需要输入Uri,然后把图片下载。...图片要显示,需要SetSourceAsync,他需要参数IRandomAccessStream,而这个需要Buffer写数据,不能用byte开始用System.Net.Http没有获取Buffer...,但是Uri不能做文件名,于是用md5 Uwp使用Md5,可以去看我写文章 private static string Md5(string str) {

1.3K10

win10 uwp 读取保存WriteableBitmap 、BitmapImage 保存 WriteableBitmap 到文件文件读 WriteableBitmapIma

主要说BitmapImage 和 WriteableBitmap 、二进制 byte 互转。...(); Image 转byte[] 如果我们 ImageSource 是 BitmapImage ,那么我们不能使用上面的办法,直接保存 WriteableBitmap ,我们可以使用截图 private...---- 2017年1月4日21:45:37 ---- 后来过了几个月,发现我们 BitmapImage 可以byte[] 我们可以通过拿 BitmapImage UriSource 把它转为...如果使用 BitmapImage 图片是 SetSource,那么也不会。 获取图片中鼠标点击颜色 获取鼠标点击那个点,图片颜色。那么图片之外,界面呢?其实我们还可以把界面截图,然后获取。...图片解决方案获得,大家可以任意位置获取,只要可以转换为 IRandomAccessStream var file = await StorageFile.GetFileFromApplicationUriAsync

1.9K10

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... b = File.ReadAllBytes(filePath); return Convert.ToBase64String(b);         } /// /// base64...环境,这种简单操作方式却无法使用了,幸好网上有一个开源免费组件FluxJpeg,同时国外有高人已经利用该组件写出了将位图转化为base64方法,这里我们借用一下即可: 代码 <UserControl

1.3K70

win10 uwp 存放网络图片到本地 下载图片保存图片本地打开所有代码Nuget安装Microsoft.Toolkit.Uwp

有时候我们网络很垃圾,UWP要在第一次打开网络图片,就把图片存放到本地,下次可以本地打开。 有时候用户使用是流量网络,不能每次都联网下载。 我们不得在应用存放用户打开图片。...这就是先把图片下载,然后显示出来,存放到本地,接着下次要使用就可以本地获取。 最好这个和我们用户是透明,我们不知道图片在哪,是本地还是网络,只要给一个Uri就有一个图片。...这里图片BitmapImage,Uri是输入网络 下载图片 图片也是和其他一样,我们可以简单用系统给网络web下载。 我们需要输入Uri,然后把图片下载。...图片要显示,需要SetSourceAsync,他需要参数IRandomAccessStream,而这个需要Buffer写数据,不能用byte开始用System.Net.Http没有获取Buffer...,但是Uri不能做文件名,于是用md5 Uwp使用Md5,可以去看我写文章 private static string Md5(string str) {

1.2K10

【DB笔试面试797】在Oracle可以exp出来dmp文件获取哪些信息?

♣ 题目部分 在Oracle可以exp出来dmp文件获取哪些信息? ♣ 答案部分 在开发中常常碰到,需要导入dmp文件到现有数据库。...这里dmp文件可能来自于其它系统,所以,一般情况下是不知道导出程序(exp)版本、导出时间或者导出模式等信息。那么如何现有的dmp文件获取到这些信息呢?下面作者将一一讲解。...(一)获取基本信息:导出版本、时间、导出用户 下面的示例exp_ddl_lhr_02.dmp是生成dmp文件: [ZFZHLHRDB1:oracle]:/tmp>strings exp_ddl_lhr...#C#G #C#G +00:00 BYTE UNUSED (二)获取dmp文件表信息 下面的示例,exp_ddl_lhr_02.dmp是生成dmp文件: [ZFZHLHRDB1:oracle...& 说明: 将US7ASCII字符集dmp文件导入到ZHS16GBK字符集数据库可以参考BLOG:http://blog.itpub.net/26736162/viewspace-2138791

2.4K30

WPF 通过位处理合并图片

WPF 如何需要读取解决方案图片,可以使用 GetResourceStream 方法,注意图片放在解决方案需要修改生成方式为资源 在 WPF 读取资源是使用 URL 方式,这里在解决方案放图片是在项目的文件夹...,可以通过下面的链接获取 pack://application:,,,/图片文件夹/图片名.jpg 获取资源代码很简单,但是需要将资源转换为图片,这里转换为图片时候因为下面需要读取图片颜色,需要修改图片格式为...URL 转换为图片 读取图片像素 获取到图片之后,可以通过下面的方式获取图片每一个像素 var length = writeableBitmap.PixelWidth * writeableBitmap.PixelHeight...length 就是拿到图片像素长度,从上面代码可以看到使用了不安全代码,需要右击项目属性,选择可以使用不安全代码 通过上面的方法拿到两个图片所有像素,然后将像素一一对应,这里使用两张图片像素长度和像素宽度都是相同...return (byte) (byte1 ^ byte2); } 很简单就处理像素,需要对不同颜色进行处理 在处理颜色之后,可以通过创建一个和处理图片像素宽度和像素高度相同

64410

WPF图片处理相关

在一个包含非托管资源,关于资源释放标准做法是: 继承IDisposable接口; 实现Dispose()方法,在其中释放托管资源和非托管资源,并将对象本身垃圾回收器移除(垃圾回收器不在回收此资源...有关支持格式详细信息,请参阅位图类型。 您可以通过使用 Bitmap 构造函数之一,文件、流和其他源创建图像,并使用 Save 方法将它们保存到流或文件系统。...DeleteObject(hBitmap); } Image和ImageSource 源码可以看出 我们加载图片组件Image设置是ImageSource namespace System.Windows.Controls...BitmapSource 可以是解码器提供图像文件单个帧,也可以是操作自身 BitmapSource 转换结果。 BitmapSource 不用于表示多帧图像或动画。...和byte[]相互转换 // BitmapImage --> byte[] public static byte[] BitmapImageToByteArray(BitmapImage bmp) {

3.6K31

WPF 通过位处理合并图片 读取图片读取图片像素合并两张图片界面

在 WPF 读取资源是使用 URL 方式,这里在解决方案放图片是在项目的文件夹,可以通过下面的链接获取 pack://application:,,,/图片文件夹/图片名.jpg 获取资源代码很简单...formatConvertedBitmap.EndInit(); return new WriteableBitmap(formatConvertedBitmap); } 通过这个方法就可以解决方案拿到...URL 转换为图片 读取图片像素 获取到图片之后,可以通过下面的方式获取图片每一个像素 var length = writeableBitmap.PixelWidth * writeableBitmap.PixelHeight...通过上面的方法拿到两个图片所有像素,然后将像素一一对应,这里使用两张图片像素长度和像素宽度都是相同,所以直接通过对应数组下标就可以对应每个像素,如果是像素不相等图片,具体业务是怎么处理就进行对应方法...return (byte) (byte1 ^ byte2); } 很简单就处理像素,需要对不同颜色进行处理 在处理颜色之后,可以通过创建一个和处理图片像素宽度和像素高度相同

2.3K20

一次深刻学习之旅:Power Query真有循环获取GUID说起

我们也可以据此推测,PQ添加自定义列,首先会检查表达式,引擎发现每一行都是一个Text.NewGuid(),既然是一样,因此就计算一次填充到了所有行。...解决方案 方法一 可以通过在随机GUID前后各添加一列索引来锁定这一列: 然后再将两列索引删除,即可获取NAME和GUID列: 方法二 修改语句,对引用表套个Table.Buffer函数,再对结果再套一个...(x)=>Text.NewGuid())) 添加一列,每一列都是列表转换,生成列表: 理论上,像List.Random函数一样,每一个list获取结果应当是不一样,展开: 理论上不应该啊!...()却只运算一次,也是服了,也是醉了: 再进一步,我们一次性list生成5个随机数: = Table.AddColumn( 删除副本, "自定义", each List.Transform...不过,另一个侧面也可以看出来,本来我们以为List.Transform是可以循环,但是在某些场景,它暴露出来并不是循环本质。 因此,解决办法3,无效。

1.1K10

WPF桌面端开发5-常用技巧

,它位于Canvas最顶层 Canvas.SetZIndex(m_erase_img, int.MaxValue); 获取显示器缩放倍数 我们在开发截屏功能时如果设置了缩放与布局为200%,显示分辨率为...2560x1600, 我们通过代码SystemParameters.PrimaryScreenWidth获取屏幕宽度就是1280, 如果截图截取1280的话,截出图片就宽高都只有一半, 所以我们就必须获取系统缩放倍数...//100%时候,DPI是96;这条语句作用时获取缩放倍数 float factor = Graphics.FromHwnd(IntPtr.Zero).DpiX / 96; Bitmap/BitmapImage.../BitmapSource BitmapSource是Imagesource子类 WPFImage控件设置ImageSource image1.Source = new BitmapImage(new...(filepath, System.IO.FileMode.Open, System.IO.FileAccess.Read); byte[] buffer = new byte[fs.Length];

85510

silverlight顺序倒序异步加载多张图片

相册/图片切换广告等很多常用小应用,服务器返回一组图片uri,然后silverlight利用WebClient异步加载,如果要严格控制加载顺序的话,可以利用Stack(堆栈)或Queue(堆栈)处理...,思路:不要全部一起加载,先加载第一个,在完成异步回调过程,继续发起一下次异步。...回想我们在ajax开发,有一种技术叫"http长连接",在每一次ajax异步请求完成时,继续发起下一个异步请求,这样客户端与服务端连接就一直保持下去了。 这二者多么相象!...再次印证了那句话:技术很多时候一通百通 :) 关键代码: using System; using System.Collections.Generic; using System.Net; using..._bitMap = new BitmapImage(); _bitMap.SetSource(e.Result); ImageItemBase

71970

WPF 修改图片颜色

本文告诉大家如何修改图片颜色,如去掉图片蓝色 在 WPF 可以使用很多图片处理方法,本文告诉大家是一个图片处理,可以把处理图片保存在文件。...在阅读本文,假设大家是熟悉 WPF ,至少了解 C# ,也知道图片格式。...在 WPF 可以使用 ARBG 数组表示图片,本文修改图片颜色方法就是使用 ARBG 数组方法修改,修改里面的元素值。...如我需要去掉图片蓝色,就可以通过修改 ARBG 数组元素,设置所有蓝色为 0 ,去掉蓝色。 读取图片 首先找到一张好看图片,放在解决方案 ?...转换数组 var backBuffer = (byte*) writeableBitmap.BackBuffer; 读取颜色就是数组拿到值 for (int

3.3K10

YUV和RGB存储规则

YUV采样可以大大降低传输数据大小,以YUV420为例就是RGB一半。 RGB/BGR 每一个点都是由三个byte组成,分别存储R、G、B,值范围是[0-255]。...需要注意是在C#我们获取是按BGR排序。 如果要包含透明通道,就有RGBA、BGRA、ARGB或者ABGR这四种方式,所以要注意我们所需格式。 YUV YUV值是怎么来呢?...直接给公式 : (请不要使用其他博客浮点数类型公式,会严重影响精度) y = (( 66 * r + 129 * g + 25 * b + 128) >> 8) + 16 ; u = ((-38...而YUV可以通过不同采样方式来减少一些U、V分量,从而减小所需存储空间。而恢复为RGB时候可以几个Y分量共用U、V分量来恢复为RGB。...也可以是先存Y,再存V,再存U。

91620
领券