wpf,vb,位图剪裁的方法

‘ 貌似WPF对GDI+不提供支持,要达到剪裁图像的方法,可以使用image.clip,’不过clip只是对图片的一个遮挡拦截效果,并不改变本身的图片资源。‘下面的代码提供了剪裁图片资源的方法。

        Dim path = "C:\Users\Administrator\Desktop\image\image\Images\tori_gaku_02.png"
        Dim bitmap As BitmapSource = New BitmapImage(New Uri(path, UriKind.Absolute))
        ‘获得位图宽度,高度
        Dim width = bitmap.PixelWidth
        Dim height = bitmap.PixelHeight
        Dim bytePerPixel = bitmap.Format.BitsPerPixel / 8
        Dim stride = width * bytePerPixel
        ‘储存位图像素信息
        Dim pixls(stride * height + 1) As Byte
        Dim dpix = bitmap.DpiX
        Dim dpiy = bitmap.DpiY
        Dim format = bitmap.Format ‘PixelFormats.Bgr32 ‘
        Dim palette = bitmap.Palette ‘ Nothing
        ‘设置剪切矩形
        Dim cut As New Int32Rect(0, 0, width * 0.25, height * 0.25)
        Dim cut2 As New Int32Rect(width * 0.25, height * 0.25, width * 0.25, height * 0.25)
        ‘复制指定区域像素信息
        bitmap.CopyPixels(cut2, pixls, stride, 0) ‘用法2:bitmap.CopyPixels(pixls, stride, 0)
        ‘根据复制的像素信息,新建一个位图
        Dim image As BitmapSource = BitmapSource.Create(width * 0.25, height * 0.25, dpix, dpiy, format, palette, pixls, stride)
        ‘新建一个image控件,显示剪裁的位图
        Dim image2 As New Image
        image2.Stretch = Stretch.Fill
        image2.Width = width * 0.25
        image2.Height = height * 0.25
        image2.Source = image
        grid1.Children.Add(image2)
时间: 2024-12-29 07:13:09

wpf,vb,位图剪裁的方法的相关文章

WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例

原文:WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 WPF 渲染框架并没有对外提供多少可以完全控制渲染的部分,目前可以做的有: D3DImage,用来承载使用 DirectX 各个版本渲染内容的控件 WriteableBitmap,通过一段内存空间来指定如何渲染一个位图的图片 HwndHost,通过承载一个子窗口以便能叠加任何种类渲染的控件 本文将解释如何最大程度压榨 WriteableBitmap 在 WPF 下的性能. 本文内容 如何使用 WriteableBi

C#中实现VB中的CreateObject方法

经常看到有些VB的例子中直接用个CreateObject就可调用系统功能(大多是COM对象),像用户设定,网络设定等等.虽然C#中可以通过使用VB的命名空间的方法来调用CreateObject函数,但是这样比较没什么用,因为生成的对象的所带有的方法都不能使用.C#中还可以直接用添加引用的方式来调用一些对象,前提是你知道该添加哪个引用.当我上网搜索,已经搜索到很多VB的成功用CreateObject调用的例子,C#的例子却很难找到的时候,就干脆用类似VB的方法算了,很简单.免得继续在网络中大海捞针

WPF获取应用程序路径方法,获取程序运行路径方法

试了好多种方法,在WPF中获取工程的路径都没能解决掉,暂时用的绝对路径"D://WPF.....",但是发布的时候出现问题了,放到别的电脑上找不到路径,又开始了地毯式搜索,终于解决了,跟遇到此类问题的朋友分享下解决办法,如下: AppDomain.CurrentDomain.BaseDirectory +文件名即可,简单吧? //获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称. string str5=Application.StartupPath; //可获得当前执行的

WPF中使用ObjectDataProvider绑定方法

原文:WPF中使用ObjectDataProvider绑定方法 ObjectDataProvider提供了绑定任意.net类型的功能,具体功能如下: 1.ObjectDataProvider提供了绑定任意CLR类型的公嫩那个. 2.它可以再XAML中利用生命史的语言以及参数化的构造函数完成对数据的创建 3.增加对成员函数的绑定 4.提供了更多的异步绑定的功能 下面用一个加法计算器来进行实例说明: 请先看我们的加法类: C#代码 namespace BindingDemo {     public

WPF/C# 快捷键 自动生成方法

原文:WPF/C# 快捷键 自动生成方法 这一篇文章会很短~ 在写依赖属性的会后   propdb 会自动生成依赖属性所有的内容 但是如果我写属性变化通知的时候   希望有一个快捷键能自动生成方法 怎么办 ------------------------------------------------------------------------------------------------------------------------------ 上面那些话的意思就是 写trigger

WPF文字描边的解决方法

 由于项目原因,今天研究了一下午WPF的文字描边,网上这方面的资料奇少,搞了半天才发现强大的WPF原来不直接支持文字描边啊.最后求助于MSDN,找到了方案,和大家分享一下: 主要思路:用FormattedText将字符串转换为Geometry,再在重写的OnRender(DrawingContext drawingContext)方法中绘制Geometry.效果如图. 组件的主要属性: Text属性设置文字 Fill属性设置文本本身的画刷 Stroke属性是描边画刷 StrokeThickn

VB.NET 集中命名方法总结 章鱼哥出品

一个好的命名规范可以大大改善代码的可读性和可维护性.好的编程习惯是从刚开始就养成的,很多刚学编程的同学可能感觉繁琐的命名没有必要,只要程序能够达到指定功能就可以了,其实不然,大家一定要从刚开始就关注这些东西,让好的命名规范形成自己的习惯! 下面及简单介绍下在编程中常用的编程集中命名方法,并且主要讨论在接下来的编程学习中,VB.NET编程比较适合的方法,希望大家以后按照统一的规范来编程,提高自己的编程效率! 1)匈牙利命名法 匈牙利命名法的特点是前缀.用前缀标明变量的类型.前缀后面的单词首字母大写

WPF中WebBrowser的使用方法及分析

基础知识 WebBrowser类 承载并在HTML文档间导航.在WPF托管代码和HTML脚本间启用互操作性. WebBrowser.Navigate方法(Uri) 异步导航到位于指定Uri处的文档. 命名空间:System.Windows.Controls 程序集:PresentationFramework(在PresentationFramework.dll中) 语法:public void Navigate(Uri source) string szTmp = "http://192.168

VB接口的使用方法

[接口定义]接口就是指只包含虚成员的虚类. (1)虚类,表明了接口是不能够被直接实例化的.也就是说,接口只是一个抽象概念.比如我们说车可以跑,人可以跑,马可以跑.我们可以看到实例化的车.人.马.但是我们可以定义一个"会跑的物质".它可以是车,也可以使人.马,但是我们却不能说"这个东西就是一个会跑得物质,但是它并不是车.人或者马." (2)只包含虚成员,表明了接口只是说明了它具有什么样的功能,可以提供什么样的信息.但是这些功能和信息究竟是什么,如何提供我们无法得知.就