上一篇"base64编码在silverlight中的使用"里已经提到WriteableBitmap对象可以借助FluxJpeg转化为base64字符串,而WriteableBitmap又能从BitmapSource...问题解决了 先将BitmapImage转化为WriteableBitmap,然后得到base64字符串,然后可以得到base64的byte[]数组,再然后您可以把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
最近又用silverlight做了一个小的东西,如图: 主要就是下边的导航,点击了后上边的大图和文字简介都跟着做相应的变化。...导航部分用了“Silverlight Contrib”这个控件库中的“CoolMenu”控件。其自带的demo中是直接把各个Item写好在xaml中。...这里我是需要从我的配置文件中读取数据后在加载到导航中。...所以再在这里顺便提上一个小技巧:从xap文件中读取文件 读取图片文件: StreamResourceInfo sri = Application.GetResourceStream(new Uri(..., 1为要读取的文件在在xap中的路径。
问: 假设我有这个脚本: export.bash #!...echo $VAR 有没有一种方法可以通过只执行 export.bash 而不 source 它获取 $VAR? 答: 不可以。 但是有几种可能的解决办法。...在调用 shell 的上下文中执行脚本: $ cat set-vars1.sh export FOO=BAR $ . set-vars1.sh $ echo $FOO BAR 另一种方法是在脚本中打印设置环境变量的命令...-f 指 shell 函数 -n 从每个(变量)名称中删除 export 属性 -p 显示所有导出变量和函数的列表 ---- 参考: stackoverflow question 16618071...help eval 相关阅读: 用和不用export定义变量的区别 在shell编程中$(cmd) 和 `cmd` 之间有什么区别 ----
Silverlight控件 - Carrousel 简介: Carrousel是一个布局控件,可对其内部的子控件排出像《旋转木马》一样的效果。...下载了文件后在Silverlight项目中添加引用。 ... img.Height = 200; this.xCarrouselPanel.AddChild(img); } 这里用我做的...demo来说明,这里我添加了21张塔罗牌。...Demo: demo我这次又用到了SilverlightCairngorm 框架。MVC架构,条理清晰。写的比较简单,对SilverlightCairngorm 感兴趣的朋友可以看下。
在传统的.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
主要说的是 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
有时候我们的网络很垃圾,我的的UWP要在第一次打开网络图片,就把图片存放到本地,下次可以从本地打开。 有时候用户使用的是流量网络,不能每次都联网下载。 我们不得在应用存放用户打开的图片。...这就是先把图片下载,然后显示出来,存放到本地,接着下次要使用就可以从本地获取。 最好这个和我们用户是透明,我们不知道图片在哪,是本地还是网络,只要给一个Uri就有一个图片。...这里图片我用BitmapImage,Uri是输入网络的 下载图片 图片也是和其他一样,我们可以简单用系统给的网络web下载。 我们需要输入Uri,然后把图片下载。...图片要显示,需要SetSourceAsync,他需要的参数IRandomAccessStream,而这个需要Buffer写数据,不能用byte,我开始用的System.Net.Http没有获取Buffer...,但是Uri不能做文件名,于是我用md5 Uwp使用Md5,可以去看我写的文章 private static string Md5(string str) {
在一个包含非托管资源的类中,关于资源释放的标准做法是: 继承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) {
WPF 如何需要读取解决方案的图片,可以使用 GetResourceStream 的方法,注意图片放在解决方案需要修改生成方式为资源 在 WPF 的读取资源是使用 URL 的方式,我这里在解决方案放的图片是在项目的文件夹...,可以通过下面的链接获取 pack://application:,,,/图片文件夹/图片名.jpg 获取资源的代码很简单,但是需要将资源转换为图片,这里转换为图片的时候因为下面需要读取图片的颜色,需要修改图片的格式为...URL 转换为图片 读取图片像素 获取到图片之后,可以通过下面的方式获取图片的每一个像素 var length = writeableBitmap.PixelWidth * writeableBitmap.PixelHeight...length 就是拿到图片的像素长度,从上面代码可以看到使用了不安全代码,需要右击项目属性,选择可以使用不安全代码 通过上面的方法拿到两个图片的所有像素,然后将像素一一对应,这里我使用的两张图片的像素长度和像素宽度都是相同的...return (byte) (byte1 ^ byte2); } 很简单就处理像素,需要对不同的颜色进行处理 在处理颜色之后,可以通过创建一个和处理的图片的像素宽度和像素高度相同的
♣ 题目部分 在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
在 WPF 的读取资源是使用 URL 的方式,我这里在解决方案放的图片是在项目的文件夹,可以通过下面的链接获取 pack://application:,,,/图片文件夹/图片名.jpg 获取资源的代码很简单...formatConvertedBitmap.EndInit(); return new WriteableBitmap(formatConvertedBitmap); } 通过这个方法就可以从解决方案拿到...URL 转换为图片 读取图片像素 获取到图片之后,可以通过下面的方式获取图片的每一个像素 var length = writeableBitmap.PixelWidth * writeableBitmap.PixelHeight...通过上面的方法拿到两个图片的所有像素,然后将像素一一对应,这里我使用的两张图片的像素长度和像素宽度都是相同的,所以直接通过对应的数组下标就可以对应每个像素,如果是像素不相等的图片,具体业务是怎么处理就进行对应的方法...return (byte) (byte1 ^ byte2); } 很简单就处理像素,需要对不同的颜色进行处理 在处理颜色之后,可以通过创建一个和处理的图片的像素宽度和像素高度相同的
我们也可以据此推测,PQ中的添加自定义列,首先会检查表达式,引擎发现每一行都是一个Text.NewGuid(),既然是一样的,因此就计算一次填充到了所有行。...解决方案 方法一 可以通过在随机GUID前后各添加一列索引来锁定这一列: 然后再将两列索引删除,即可获取NAME和GUID列: 方法二 修改语句,对引用的表套个Table.Buffer函数,再对结果再套一个...(x)=>Text.NewGuid())) 添加一列,每一列都是列表的转换,生成列表: 理论上,像List.Random函数一样,每一个list中的获取结果应当是不一样的,展开: 理论上不应该啊!...()却只运算一次,我也是服了,我也是醉了: 再进一步,我们一次性list生成5个随机数: = Table.AddColumn( 删除的副本, "自定义", each List.Transform...不过,从另一个侧面也可以看出来,本来我们以为List.Transform是可以循环的,但是在某些场景中,它暴露出来并不是循环的本质。 因此,解决办法3,无效。
,它位于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的子类 WPF的Image控件中设置ImageSource image1.Source = new BitmapImage(new...(filepath, System.IO.FileMode.Open, System.IO.FileAccess.Read); byte[] buffer = new byte[fs.Length];
1开始遍历的,我们获取麦克风设备的时候可以从0遍历。...1开始遍历的,我们获取麦克风设备的时候可以从0遍历。...=null){ capture.StopRecording(); } 注意 获取扬声器声音大小不受系统声音设置大小影响,所以要想获取真实用户听到的声音大小要用 采集的声音大小*扬声器设置的声音大小...采样率为44100Hz,样本深度为16位,声道数为1,则它的比特率为: 比特率 = 44100 × 16 × 1 = 705600 bit/s 因为 1 byte = 8 bits 所以上面的示例...1s产生的byte为 1411200 / 8 = 176400 音频计算中使用到的参数 //帧率 private readonly int _frameRate; //音频采样率 private
相册/图片切换广告等很多常用小应用中,服务器返回一组图片的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
本文告诉大家如何修改图片的颜色,如去掉图片的蓝色 在 WPF 可以使用很多图片处理的方法,本文告诉大家的是一个图片处理,可以把处理的图片保存在文件。...在阅读本文,我假设大家是熟悉 WPF 的,至少了解 C# ,也知道图片的格式。...在 WPF 可以使用 ARBG 数组表示图片,本文修改图片颜色的方法就是使用 ARBG 数组的方法修改,修改里面的元素的值。...如我需要去掉图片的蓝色,就可以通过修改 ARBG 数组的元素,设置所有蓝色为 0 ,去掉蓝色。...转换数组 var backBuffer = (byte*) writeableBitmap.BackBuffer; 读取颜色就是从数组拿到值 for (int
本文告诉大家如何修改图片的颜色,如去掉图片的蓝色 在 WPF 可以使用很多图片处理的方法,本文告诉大家的是一个图片处理,可以把处理的图片保存在文件。...在阅读本文,我假设大家是熟悉 WPF 的,至少了解 C# ,也知道图片的格式。...在 WPF 可以使用 ARBG 数组表示图片,本文修改图片颜色的方法就是使用 ARBG 数组的方法修改,修改里面的元素的值。...如我需要去掉图片的蓝色,就可以通过修改 ARBG 数组的元素,设置所有蓝色为 0 ,去掉蓝色。 读取图片 首先找到一张好看的图片,放在解决方案 ?...转换数组 var backBuffer = (byte*) writeableBitmap.BackBuffer; 读取颜色就是从数组拿到值 for (int
C#中应用OPenCV 现在,我们进入项目,进行OPenCV的调用。...= mem; bmp.EndInit(); imgOutput.Source = bmp; mat.Dispose();/// 该方法在mat里被重写了,可以释放资源,可以放心调用 可以看到,这里的代码稍微有点特别...我们通过BitmapImage导入图片后,直接使用BitmapImage的对象的ToMat方法,把BitmapImage转换成了Mat类的对象。...,图片中有很多OpenCV的特效处理,而文章中只是介绍了几个,这是因为其他处理和文章中的特效处理的方法大同小异,所以就只列举了这几个。...有兴趣的朋友可以自行下载代码学习。
注册消息获取对应消息标识Id RegisterWindowMessage。...创建窗体(本质上托盘在创建时需要一个窗口句柄,完全可以将主窗体的句柄给进去,但是为了更好的管理消息以及托盘的生命周期,通常会创建一个独立不可见的窗口)CreateWindowEx。...TrayMouseMessage; //窗口句柄 private IntPtr _TrayWindowHandle = IntPtr.Zero; //通过注册窗口消息可以获取唯一标识...(本质上是可以接受用户传入一个图片对象,然后将图片转成Icon,但是算了这个有点复杂) /// 托盘的tooltip...[] BitmapImageToByteArray(BitmapImage bmp) { byte[] bytearray = null; try