申请网站域名,wordpress 登录logo,专业的网页设计流程,网站名查找一、目的#xff1a;在WPF中BitmapSource都有哪些派生类#xff0c;他们主要功能#xff0c;使用方法#xff0c;使用场景 BitmapSource 是 WPF 中图像处理的基类#xff0c;提供了许多派生类来处理不同类型的图像源。以下是一些常见的 BitmapSource 派生类、它们的主要功…一、目的在WPF中BitmapSource都有哪些派生类他们主要功能使用方法使用场景 BitmapSource 是 WPF 中图像处理的基类提供了许多派生类来处理不同类型的图像源。以下是一些常见的 BitmapSource 派生类、它们的主要功能、使用方法和使用场景 二、主要功能、使用方法和使用场景
1. BitmapImage 主要功能: • 加载和显示位图图像如 JPEG、PNG、BMP 等。 使用方法:
BitmapImage bitmapImage new BitmapImage(new Uri(image.jpg, UriKind.Relative));使用场景: • 从文件、URI 或流中加载图像并显示在 UI 中。 2. WriteableBitmap 主要功能: • 允许对图像进行读写操作。 使用方法:
WriteableBitmap writeableBitmap new WriteableBitmap(200, 200, 96, 96, PixelFormats.Bgra32, null);使用场景: • 动态生成或修改图像内容例如绘图应用或实时图像处理。 3. RenderTargetBitmap 主要功能: • 将视觉对象如控件或窗口渲染为位图。 使用方法:
RenderTargetBitmap renderTargetBitmap new RenderTargetBitmap(200, 200, 96, 96, PixelFormats.Pbgra32);
renderTargetBitmap.Render(someVisual);使用场景: • 截图或生成图像快照例如保存控件的当前状态为图像。 4. ColorConvertedBitmap 主要功能: • 在不同颜色空间之间转换图像。 使用方法:
ColorContext sourceColorContext new ColorContext(PixelFormats.Bgra32);
ColorContext destinationColorContext new ColorContext(PixelFormats.Prgba128Float);
ColorConvertedBitmap colorConvertedBitmap new ColorConvertedBitmap(bitmapImage, sourceColorContext, destinationColorContext, PixelFormats.Pbgra32);使用场景: • 颜色校正或颜色空间转换例如从 sRGB 转换到 scRGB。 5. CroppedBitmap 主要功能: • 从现有图像中裁剪出一个矩形区域。 使用方法:
Int32Rect cropRect new Int32Rect(50, 50, 100, 100);
CroppedBitmap croppedBitmap new CroppedBitmap(bitmapImage, cropRect); 使用场景: • 图像裁剪操作例如从大图中提取小区域。 6. TransformedBitmap 主要功能: • 对图像应用变换如旋转、缩放、平移等。 使用方法:
TransformedBitmap transformedBitmap new TransformedBitmap(bitmapImage, new RotateTransform(90));使用场景: • 图像变换操作例如旋转图像或缩放图像。 7. FormatConvertedBitmap 主要功能: • 将图像从一种像素格式转换为另一种像素格式。 使用方法:
FormatConvertedBitmap formatConvertedBitmap new FormatConvertedBitmap(bitmapImage, PixelFormats.Gray8, null, 0);使用场景: • 图像格式转换操作例如将彩色图像转换为灰度图像。 8.CachedBitmap
主要功能 • 缓存图像数据: 将图像数据缓存到内存中以便快速访问。 • 提高性能: 通过减少对原始图像源的访问次数提高图像处理的性能。 使用方法 以下是一个简单的示例演示如何使用 CachedBitmap
// 创建一个 BitmapImage 作为源图像
BitmapImage bitmapImage new BitmapImage(new Uri(image.jpg, UriKind.Relative));// 创建一个 CachedBitmap将源图像缓存到内存中
CachedBitmap cachedBitmap new CachedBitmap(bitmapImage, BitmapCreateOptions.None, BitmapCacheOption.OnLoad);// 将 CachedBitmap 设置为 Image 控件的源
Image imageControl new Image();
imageControl.Source cachedBitmap;使用场景 • 频繁访问图像数据: 在需要频繁访问或处理图像数据的场景中使用 CachedBitmap 可以显著提高性能。例如在图像编辑器或实时图像处理应用中。 • 减少加载时间: 当图像需要多次显示或处理时使用 CachedBitmap 可以减少每次加载图像的时间。 • 提高渲染性能: 在需要高性能渲染的场景中使用 CachedBitmap 可以减少对原始图像源的访问从而提高渲染性能。 详细解释 • BitmapCreateOptions: 指定创建位图时的选项。常用的选项包括 None 和 IgnoreImageCache。 • BitmapCacheOption: 指定缓存选项。常用的选项包括 OnLoad在加载时缓存图像数据和 OnDemand按需缓存图像数据。 示例代码解释 1. 创建源图像: 使用 BitmapImage 从文件或 URI 加载图像。 2. 创建 CachedBitmap: 使用 CachedBitmap 将源图像缓存到内存中。 3. 设置图像源: 将 CachedBitmap 设置为 Image 控件的源以便在 UI 中显示缓存后的图像。 总结 这些 BitmapSource 派生类提供了丰富的功能允许你在 WPF 中灵活地处理各种图像操作。根据具体的使用场景你可以选择合适的类来实现所需的图像处理功能。如果你有更多问题或需要进一步的解释请随时提问
需要了解的知识点
BitmapSource 类 (System.Windows.Media.Imaging) | Microsoft Learn
BitmapImage 类 (System.Windows.Media.Imaging) | Microsoft Learn
CachedBitmap 类 (System.Windows.Media.Imaging) | Microsoft Learn
ColorConvertedBitmap 类 (System.Windows.Media.Imaging) | Microsoft Learn
CroppedBitmap 类 (System.Windows.Media.Imaging) | Microsoft Learn
FormatConvertedBitmap 类 (System.Windows.Media.Imaging) | Microsoft Learn
RenderTargetBitmap 类 (System.Windows.Media.Imaging) | Microsoft Learn
TransformedBitmap 类 (System.Windows.Media.Imaging) | Microsoft Learn
https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.media.imaging.writeablebitmap?viewwindowsdesktop-8.0WT.mc_idMVP_380318
System.Windows.Controls 命名空间 | Microsoft Learn控件库 - WPF .NET Framework | Microsoft Learn
WPF 介绍 | Microsoft Learn
XAML概述 - WPF .NET | Microsoft Learn
Windows Presentation Foundation 简介 - WPF .NET | Microsoft Learn
使用 Visual Studio 创建新应用教程 - WPF .NET | Microsoft Learn
源码地址
GitHub - HeBianGu/WPF-ControlDemo: 示例
GitHub - HeBianGu/WPF-ControlBase: Wpf封装的自定义控件资源库
GitHub - HeBianGu/WPF-Control: WPF轻量控件和皮肤库
了解更多
适用于 .NET 8 的 WPF 的新增功能 - WPF .NET | Microsoft Learn
适用于 .NET 7 的 WPF 的新增功能 - WPF .NET | Microsoft Learn
System.Windows.Controls 命名空间 | Microsoft Learn
Reference Source
Sysinternals - Sysinternals | Microsoft Learn
Windows app development documentation - Windows apps | Microsoft Learn
欢迎使用 Expression Blend | Microsoft Learn
https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/?viewnetdesktop-7.0WT.mc_idMVP_380318
https://github.com/HeBianGu
HeBianGu的个人空间-HeBianGu个人主页-哔哩哔哩视频