原文:GDI+ Bitmap与WPF BitmapImage的相互转换 using System.Windows.Interop; //... // Convert BitmapImage to Bitmap private Bitmap BitmapImage2Bitmap(BitmapImage bitmapImage)  {        return new Bitmap(bitmapImage.StreamSource); }    // Convert Bitmap to Bitma…
做水印图片的时候,发现WPF的System.Windows.Shapes类有绘制直线,椭圆等形状.却没有绘字符串的类. 无奈之下又用回GDI+ 发生的GDI+一般性错误初步估计的线程的原因. 在load事件加载不会出一般性错误.由于业务的要求,这个是放在一个定时刷新的事件里面. 用了 DispatcherTimer 与System.Timers.Timer都是无法解决这个问题.写了委托.也没用......当时心真的是凉了半截.折腾了4小时. 最后终于找到了下面那个把图片转换的方法.才搞定....…
public BitmapImage ConvertWriteableBitmapToBitmapImage(WriteableBitmap wbm) { BitmapImage bmImage = new BitmapImage(); using (MemoryStream stream = new MemoryStream()) { PngBitmapEncoder encoder = new PngBitmapEncoder(); encoder.Frames.Add(BitmapFram…
public BitmapImage BitmapToBitmapImage(System.Drawing.Bitmap bitmap) { MemoryStream ms = new MemoryStream(); bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png); BitmapImage bit3 = new BitmapImage(); bit3.BeginInit(); bit3.StreamSource = ms; bit3…
使用Image控件显示图片后,虽然自己释放了图片资源,Image.Source =null 了一下,但是图片实际没有释放.解决方案:修改加载方式~        public static BitmapImage GetImage(string imagePath)        {            BitmapImage bitmap = new BitmapImage();            if (File.Exists(imagePath))            {     …
public BitmapImage BitmapToBitmapImage(Bitmap bitmap) { Bitmap bitmapSource = new Bitmap(bitmap.Width,bitmap.Height); int i,j; ;i<bitmap.Width;i++) ; j < bitmap.Height; j++) { Color pixelColor = bitmap.GetPixel(i, j); Color newColor = Color.FromArgb…
windows gdi+ 是对 windows gdi 的一个c++封装,同时增加了一些扩展功能,如反走样,样条曲线,变换矩阵,图像编解码等. gdi+ 相对于 gdi 也存在一些不足之处,如 执行效率较低,不支持位运算(gdi可通过位运算实现局部透明)等. 在实际应用中,由于主要做位图相关操作,我比较倾向选择使用 gdi 进行绘图,这样可以得到较高的绘制速度,以及更多的灵活性. 对于 gdi+,我主要关注点在于 Bitmap 类,下面只讨论 Bitmap 类相关内容. 1 使用 gdi+ 的安…
Byte[]转Bitmap BitmapFactory.decodeByteArray(data, 0, data.length); Bitmap转Byte[] ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); data2 = baos.toByteArray(); 可以选择图片格式,这里是JPEG,可以用PNG Bit…
原文:WPF(C#)中Bitmap与BitmapImage相互转换 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wangshubo1989/article/details/47296339 一.WPF的Image控件中设置ImageSource image1.Source = new BitmapImage(new Uri(@"image file path", Urikind.RelativeOrAbsolute)); 还可以使用…
来源:http://www.cnblogs.com/lxblog/ 最近项目中应用多次应用了图片合成,为了今后方便特此记下. 在WPF下有两种图片合成的方式,一种还是用原来C#提供的GDI+方式,命名空间是System.Drawing 和 System.Drawing.Imaging,另一种是WPF中新添加的API,命名空间是 System.Windows.Media 和 System.Windows.Media.Imaging . 我们来做一个简单的例子,分别用上面的两种方式实现,功能是在一个…
问题: WPF中默认使用的图像的DPI是96.如果我们使用的图素的DPI不是96时(比如是72),那么WPF会把图片的DPI自动改为96,导致图像加载出来的实际大小Width和Height会比想要的大(原图显示大小会是实际图大小的72/96 = 3/4),比如图片会在Image控件内显示超框了. 如何发现问题的: 这个问题是Debug中从Bitmap身上的HorizontalResolution.VerticalResolution属性发现的.(Resolution本应该为72,却变成了96).…
步骤: 联网异步获取Json数据. 使用Json.NET工具,反序列化Json为对应的实体类,获得该实体类的对象. 从对象身上获取图片路径(实体类中定义了头像图片是string类型的文件路径). 根据图片路径,再次联网异步获取图片. 将二进制资源转换为合适的类型(可能需要多步转换). 给控件使用. public partial class MyWindow : Window { public MyWindow() { InitializeComponent(); // 初始化设计师的个人信息 I…
WPF可以通过ZXing.Net库来实现二维码的功能. 可以通过NuGet安装: Install-Package ZXing.Net 二维码的实现代码: #region 二维码的方法 /// <summary> /// 注销对象方法API /// </summary> /// <param name="obj">准备注销的对象</param> /// <returns></returns> [DllImport(&…
WPF 中的一些图片处理方法 一,视觉处理(控件展示) 1,显示图片 Image控件展示 Xaml代码: <Image source="/Resources/Images/1.png"/> 缩放位图渲染算法 Xaml代码: <Image Source="/Resources/Images/1.jpg" RenderOptions.BitmapScalingMode="Fant"/> 枚举值 描述 Fant 使用超高质量 F…
Image transformation is a process of rotating and scaling images. Rotating Images There are two ways to rotate an image. First option is to use the Rotation property of BitmapImage and second option is use a TransformBitmap image. The TransformBitmap…
一.概述 WPF(Windows Presentation Foundation,视窗展示[呈现.展现.显示.表示]基础)是Windows的新一代图形子系统,他为开发人员提供了统一的编程模型,可用于构建合并了UI.媒体和文档的丰富Windows智能客户端用户体验. Windows的图形子系统,经历了从GDI到GDI+再到WPF的发展过程.GDI是Windows1.0(1985年11月)就有的传统图形子系统,GDI+是随Windows XP引入的新式图形子系统,而WPF则是随Windows Vis…
加载一位图,可以使用LoadImage: HANDLE LoadImage(HINSTANCE hinst,LPCTSTR lpszName,UINT uType,int cxDesired,int CyDesired,UINT fuLoad): LoadImage可以用来加载位图,图标和光标 加载时可以规定加载图的映射到内存的大小: cxDesired:指定图标或光标的宽度,以像素为单位.如果此参数为零并且参数fuLoad值中LR_DEFAULTSIZE没有被使用,那么函数使用目前的资源宽度.…
这俩年多来笔者一直在从事关于WPF的开发.虽然不能说是专家级别的.但是对于WPF的应用还是有一定的了解.论他的灵活性决对不在WinForm之下.WPF的出现更是引发一段热议.他的何去何从更是让很多人感到迷茫.因为那个时候可以说只有Winow 7才能跟WPF完美的接合.可惜他出不逢时,XP占了大部分的市场.所以WPF的出生动静很大,可惜后力不足,渐渐的淡淡化他的光芒.于至于网络上更是有对WPF的死亡产生了很大的争议.但是这并没有让他沉默下去,这几年来window 8和window 10的推广更是让…
1.登录http://zxingnet.codeplex.com/,下载对应.net版本的zxing库 2.引入zxing.dll 3.新建界面控件 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using Sys…
加载一位图,可以使用LoadImage: HANDLE LoadImage(HINSTANCE hinst,LPCTSTR lpszName,UINT uType,int cxDesired,int CyDesired,UINT fuLoad): LoadImage可以用来加载位图,图标和光标 加载时可以规定加载图的映射到内存的大小: cxDesired:指定图标或光标的宽度,以像素为单位.如果此参数为零并且参数fuLoad值中LR_DEFAULTSIZE没有被使用,那么函数使用目前的资源宽度.…
这俩年多来笔者一直在从事关于WPF的开发.虽然不能说是专家级别的.但是对于WPF的应用还是有一定的了解.论他的灵活性决对不在WinForm之下.WPF的出现更是引发一段热议.他的何去何从更是让很多人感到迷茫.因为那个时候可以说只有Winow 7才能跟WPF完美的接合.可惜他出不逢时,XP占了大部分的市场.所以WPF的出生动静很大,可惜后力不足,渐渐的淡淡化他的光芒.于至于网络上更是有对WPF的死亡产生了很大的争议.但是这并没有让他沉默下去,这几年来window 8和window 10的推广更是让…
带Alpha通道的图像(ARBG)在通过GDIPlus::Bitmap::FromHBITMAP等转为GDI+位图,再存储时,透明区域会变成纯黑(也有可能是纯白?).   网上找了两段保持透明的实现代码,列在下边,经测试,第一段无效,第二段有效,这两段代码正好可以对比说明:FromHBITMAP在拷贝图像数据时,原图中的Alpha数据确实没有Copy过来,而并非是未设置图像属性的问题.   第一段的思路是:直接用FromHBITMAP创建一个GDI+位图,新建另一个带PixelFormat32b…
1.在http://zxingnet.codeplex.com/网站上下载ZXing .Net的第三方库 2.新建一个WPFproject 3.引入zxing.dll 4.加入引用空间 using ZXing.Common; using ZXing; using ZXing.QrCode; 5.加入引用System.Drawing 6.加入引用空间 using System.Drawing; 7.在xaml中加入一个Image控件,用于显示二维码.命名为image1. 8.编写生成二维码函数:…
Winform中针对界面的元素进行操作, 所有业务都关联在当前窗口的后台, 而在此之前, 无奈你是双击事件的添加方式.还是后台绑定事件的方式, 你都需要给每个元素一个固定规范的名称, 然后进行相关的数据操作.这种方式称之为事件驱动型. WPF的不同之处: 1.  WPF不仅仅在支持原生的Winform旧模式的操作下,升级了一种全新的模式,也是就是MVVM模式, 不再为每个元素添加固定的名称, 然后通过后台进行事件进行业务代码编写. 2.  一套扩展能力超强的UI界面, 与早期的GDI+/GDI不…
原文:制作简单的WPF时钟 在很早之前,我曾经写过一个GDI+的时钟,见"C#时钟控件 (C# Clock Control)" http://blog.csdn.net/johnsuna/archive/2006/02/13/597746.aspx及"使用C#编写LED样式时钟控件"(http://blog.csdn.net/johnsuna/archive/2006/02/14/598867.aspx),进入WPF时代了,如何用WPF绘制一个时钟呢? 先看效果:…
原文:简述WPF中的画刷(Brush) --------------------------------------------------------------------------------引用或转载时请保留以下信息:大可山 [MSN:a3news(AT)hotmail.com] http://www.zpxp.com http://www.brawdraw.com萝卜鼠在线图形图像处理--------------------------------------------------…
原文:WPF 将Bitmapsource转换到Emgu.cv.image Transform WPF BitmapSource to Emgu.CV.Image******* /// <summary> /// Original Img /// </summary> Image<Bgr, Byte> src; //从剪切板中取得bitmap,是WPF可接受的BitmapSource类型 BitmapSource bitmap = System.Windows.Clipb…
原文:WPF中的图像处理简介 和Winform中的GDI+相比,WPF提供了一组新的API用于显示和编辑图像.新API特点如下: 适用于新的或专用图像格式的扩展性模型. 对包括位图 (BMP).联合图像专家组 (JPEG).可移植网络图形 (PNG).标记图像文件格式 (TIFF).Microsoft Windows Media 照片.图形交换格式 (GIF) 和图标 (.ico) 在内的本机图像格式增强了性能和安全性. 高位深图像数据的保留最多 32 位/通道. 非破坏性图像缩放.裁切和旋转.…
一.概述 WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,随着.NET Framework 3.0发布第一个版本.它提供了统一的编程模型.语言和框架,真正做到UI与数据.业务逻辑分离,同时提供了全新的多媒体交互用户图形界面. 二.组成 1.WPF引擎.WPF引擎统一了开发人员和设计人员体验文档.媒体和 UI 的方式,为基于浏览器的体验.基于窗体的应用程序.图形.视频.音频和文档提供了一个单一的运行时库.WPF 使得应用程序不…
有了之前的基础知识了解,如今開始实现PrtScn和Alt+PrtScn. 首先新建一个WPF应用程序,命名为PrintscreenAndAltPrintScreen 导入keybd_event方法: 须要为DllImport加入using System.Runtime.InteropServices; [DllImport("user32.dll")] static extern void keybd_event ( byte bVk,// 虚拟键值 byte bScan,// 硬件扫…