bitmapsource相关内容

图像加载内存泄漏与 C#

我的应用程序中存在内存泄漏问题,它加载了大量图像.我对 C# 比较陌生,并且认为我的内存泄漏问题已经过去了.我想不通问题 - 也许我正在使用一些我没有正确处理的非托管模块? 为了说明我的问题,我简化了导致问题的核心,并将其转移到一个干净的项目中.请注意,这都是愚蠢的代码,并没有反映它来自的原始应用程序.在测试应用程序中,我有 2 个按钮,触发两个事件. 按钮 1 - 创建:将对象设置为 ..
发布时间:2021-12-31 00:01:59 C#/.NET

您如何确保 WPF 从内存中释放大型 BitmapSource?

系统:Windows XP SP3,.NET 3.5,4GB RAM,双 1.6GHz 我有一个 WPF 应用程序,可以加载和转换(使用故事板动画)极大的 PNG.这些 PNG 的分辨率为 8190x1080.当应用程序运行时,它似乎会缓存图像,系统内存会慢慢增加.最终它使系统窒息并抛出 OutOfMemoryException. 以下是我目前正在尝试解决此问题的步骤: 1)我正 ..
发布时间:2021-12-30 23:42:45 其他开发

快速将位图转换为位图源 wpf

我需要在 Image 组件上以 30Hz 的频率绘制图像.我使用此代码: public MainWindow(){初始化组件();Messenger.Default.Register(this, (bmp) =>{ImageTarget.Dispatcher.BeginInvoke((Action)(() =>{var hBitmap = bmp.GetHbitmap();var drawabl ..
发布时间:2021-12-05 16:33:14 C#/.NET

如何将 WPF BitmapSource 图像保存到文件?

在 WPF 中,System.Windows.Clipboard.getImage() 函数返回一个 BitmapSource 对象.作为来自 WinForms 背景的 WPF 新手,我不清楚如何将此图像保存到文件中.我必须采取哪些步骤? 解决方案 您需要使用编码器(BitmapEncoder).例如,要将其保存为 PNG 格式,您可以执行以下操作: public static void ..
发布时间:2021-09-28 20:12:43 其他开发

C# WPF BitmapSource 内存泄漏?

我正在开发一个显示 21 点牌桌、纸牌等的 21 点游戏程序.计划是它会使用自动化策略接连玩上千手牌. 我有一个 PlayerSeat UserControl,它包含一个绑定到 ObservableCollection 的 ItemsControl.此 CardInHand 类包含名为 CardImage 的 BitmapSource.当实例被创建时,它使用以下代码从资源加载卡片图像: [ ..
发布时间:2021-06-02 19:45:23 C#/.NET

将InteropBitmap转换为BitmapImage

我正在尝试将 Bitmap(SystemIcons.Question)转换为 BitmapImage ,以便可以在WPF Image控件中使用它. 我有以下方法将其转换为 BitmapSource ,但它返回 InteropBitmapImage ,现在的问题是如何将其转换为 BitmapImage .直接投射似乎无效. 有人知道怎么做吗? 代码: 公共BitmapSource ..
发布时间:2021-04-18 20:41:23 C#/.NET

为什么此位图图像在加载后会更改其大小?

快速提问: 我有这张 1000 x 1000 位图图像: P.S我希望它是1000 x 1000,并且不使用任何调整大小功能.它正在工作,突然变成800 * 800了! 解决方案 BitmapSource.Height 不是以像素为单位,而是WPF的设备独立单位,始终为96 dpi.例如: 以与设备无关的单位(每单位1/96英寸)获取位图的宽度. 如果您想知道实际的 ..
发布时间:2021-04-15 19:58:33 C#/.NET

如何读取BitmapSource四个角的像素?

我有一个.NET BitmapSource 对象.我想读取位图角落的四个像素,并测试它们是否都比白色暗.我该怎么办? 编辑:我不介意将此对象转换为具有更好API的另一种类型. 解决方案 BitmapSource具有 ..
发布时间:2021-04-01 20:02:30 C#/.NET

如何正确使用图片作为工具提示?

我有一个BitmapSource 1690x214(使用此代码从EMF文件中获取),并且我想使用此图像为ToolTip.这是使用“画图"显示的图像: 所以我写了这段代码: BitmapSource bmp = myBitmapSource; // "Dk01Light.EMF" Image img = new Image() { Source = bmp, Width ..
发布时间:2020-11-27 00:43:48 C#/.NET

从BitmapSource删除Alpha

我使用BitBlt()和CreateBitmapSourceFromHBitmap()将窗口捕获为BitmapSource,可以在WPF应用程序的Image元素上显示该窗口.但是由于某种原因,它捕获的大多数应用程序都是透明的.这是正在发生的事件的源图像和捕获图像: (来源: umbc.edu ) 它是灰色的,因为它所在的窗口的背景是灰色的.无论我给窗口提供什么背景,都将显示出来. ..
发布时间:2020-11-13 02:16:18 C#/.NET

如何从Clipboard类获取图像格式?

我正在用C#制作图像查看器。该功能是使用C#上的Clipboard类进行复制和粘贴的功能。 我成功获取了BitmapSource的图像。但是无法检查图像格式(jpeg,png,bmp)。 这是C#支持的源 BitmapSource源=剪贴板.GetImage(); 这些是我要使用的。 byte [] image = Clipboard.GetImage(“ image / p ..
发布时间:2020-10-02 20:10:36 C#/.NET

是否可以将byte []转换为位图源?

到目前为止,我有: using (MemoryStream ms = new MemoryStream(imageData)) { Bitmap img = (Bitmap)Image.FromStream(ms); } 然后我想我可以以某种方式从img获得BitmapSource?如果这是完全错误的,请随时纠正我. 解决方案 找到最简单的解决方案: using ..
发布时间:2020-09-21 07:05:13 C#/.NET

WPF/BackgroundWorker和BitmapSource问题

我是WPF的初学者,正在尝试一个家庭项目以熟悉该技术.我有一个简单的表单,用户可以选择一个图像文件,然后显示EXIF数据以及该图像的缩略图.这可以正常工作,但是当我选择一个RAW图像文件(〜9 MB)时,拇指加载时会稍有延迟,因此我想我可以使用BackgroundWorker对该图像进行解码,并且用户可以查看EXIF数据,然后图像解码后显示. BitmapSource对象在Backgroun ..
发布时间:2020-09-18 05:26:06 其他开发

使用BitmapSource,PngBitmapEncoder/Decoder时,将8位索引数据保存到PNG中会更改原始字节

使用BitmapSource和PngBitmapEncoder/Decoder保存和加载PNG时出现问题.基本上,我希望能够保存源自字节数组的图像,并且在将PNG加载到程序中后,重新加载完全相同的字节.原始数据保存很重要. 同时,我希望PNG使用自定义调色板(256种颜色的索引数组). 我正在尝试使用自定义索引调色板保存我的8位数据.原始数据的范围为0-255.调色板可以是“阈值"调色 ..
发布时间:2020-05-28 20:39:04 C#/.NET