bitmapsource相关内容
我的应用程序中存在内存泄漏问题,它加载了大量图像.我对 C# 比较陌生,并且认为我的内存泄漏问题已经过去了.我想不通问题 - 也许我正在使用一些我没有正确处理的非托管模块? 为了说明我的问题,我简化了导致问题的核心,并将其转移到一个干净的项目中.请注意,这都是愚蠢的代码,并没有反映它来自的原始应用程序.在测试应用程序中,我有 2 个按钮,触发两个事件. 按钮 1 - 创建:将对象设置为
..
系统:Windows XP SP3,.NET 3.5,4GB RAM,双 1.6GHz 我有一个 WPF 应用程序,可以加载和转换(使用故事板动画)极大的 PNG.这些 PNG 的分辨率为 8190x1080.当应用程序运行时,它似乎会缓存图像,系统内存会慢慢增加.最终它使系统窒息并抛出 OutOfMemoryException. 以下是我目前正在尝试解决此问题的步骤: 1)我正
..
据我所知,从 BitmapSource 转换为 Bitmap 的唯一方法是通过不安全的代码......就像这样(来自 莱斯特 WPF 博客): myBitmapSource.CopyPixels(bits, stride, 0);不安全{固定(字节* pBits = 位){IntPtr ptr = new IntPtr(pBits);System.Drawing.Bitmap bitmap =
..
我需要在 Image 组件上以 30Hz 的频率绘制图像.我使用此代码: public MainWindow(){初始化组件();Messenger.Default.Register(this, (bmp) =>{ImageTarget.Dispatcher.BeginInvoke((Action)(() =>{var hBitmap = bmp.GetHbitmap();var drawabl
..
在 WPF 中,System.Windows.Clipboard.getImage() 函数返回一个 BitmapSource 对象.作为来自 WinForms 背景的 WPF 新手,我不清楚如何将此图像保存到文件中.我必须采取哪些步骤? 解决方案 您需要使用编码器(BitmapEncoder).例如,要将其保存为 PNG 格式,您可以执行以下操作: public static void
..
我想在 WPF 中创建一个开/关按钮,并且我希望它在用户单击它时更改其外观(如果它是打开切换到关闭,如果它关闭切换到打开)使用图像.我在资源中添加了我想使用的图片:
..
我正在开发一个显示 21 点牌桌、纸牌等的 21 点游戏程序.计划是它会使用自动化策略接连玩上千手牌. 我有一个 PlayerSeat UserControl,它包含一个绑定到 ObservableCollection 的 ItemsControl.此 CardInHand 类包含名为 CardImage 的 BitmapSource.当实例被创建时,它使用以下代码从资源加载卡片图像: [
..
我正在尝试将 Bitmap(SystemIcons.Question)转换为 BitmapImage ,以便可以在WPF Image控件中使用它. 我有以下方法将其转换为 BitmapSource ,但它返回 InteropBitmapImage ,现在的问题是如何将其转换为 BitmapImage .直接投射似乎无效. 有人知道怎么做吗? 代码: 公共BitmapSource
..
快速提问: 我有这张 1000 x 1000 位图图像: P.S我希望它是1000 x 1000,并且不使用任何调整大小功能.它正在工作,突然变成800 * 800了! 解决方案 BitmapSource.Height 不是以像素为单位,而是WPF的设备独立单位,始终为96 dpi.例如: 以与设备无关的单位(每单位1/96英寸)获取位图的宽度. 如果您想知道实际的
..
我有一个.NET BitmapSource 对象.我想读取位图角落的四个像素,并测试它们是否都比白色暗.我该怎么办? 编辑:我不介意将此对象转换为具有更好API的另一种类型. 解决方案 BitmapSource具有
..
我有一个BitmapSource 1690x214(使用此代码从EMF文件中获取),并且我想使用此图像为ToolTip.这是使用“画图"显示的图像: 所以我写了这段代码: BitmapSource bmp = myBitmapSource; // "Dk01Light.EMF" Image img = new Image() { Source = bmp, Width
..
我使用BitBlt()和CreateBitmapSourceFromHBitmap()将窗口捕获为BitmapSource,可以在WPF应用程序的Image元素上显示该窗口.但是由于某种原因,它捕获的大多数应用程序都是透明的.这是正在发生的事件的源图像和捕获图像: (来源: umbc.edu ) 它是灰色的,因为它所在的窗口的背景是灰色的.无论我给窗口提供什么背景,都将显示出来.
..
我正在用C#制作图像查看器。该功能是使用C#上的Clipboard类进行复制和粘贴的功能。 我成功获取了BitmapSource的图像。但是无法检查图像格式(jpeg,png,bmp)。 这是C#支持的源 BitmapSource源=剪贴板.GetImage(); 这些是我要使用的。 byte [] image = Clipboard.GetImage(“ image / p
..
到目前为止,我有: using (MemoryStream ms = new MemoryStream(imageData)) { Bitmap img = (Bitmap)Image.FromStream(ms); } 然后我想我可以以某种方式从img获得BitmapSource?如果这是完全错误的,请随时纠正我. 解决方案 找到最简单的解决方案: using
..
我是WPF的初学者,正在尝试一个家庭项目以熟悉该技术.我有一个简单的表单,用户可以选择一个图像文件,然后显示EXIF数据以及该图像的缩略图.这可以正常工作,但是当我选择一个RAW图像文件(〜9 MB)时,拇指加载时会稍有延迟,因此我想我可以使用BackgroundWorker对该图像进行解码,并且用户可以查看EXIF数据,然后图像解码后显示. BitmapSource对象在Backgroun
..
我有一个带有某些矢量图形的DrawingBrush.我想将其转换为BitmapSource,作为将其转换为Bitmap的中间步骤. (最佳)方法是什么? 解决方案 public static BitmapSource BitmapSourceFromBrush(Brush drawingBrush, int size = 32, int dpi = 96) { // RenderT
..
为什么由于image.jpg具有无效的元数据头而发生ArgumentException时,第一个示例未捕获该异常,而第二个示例未捕获该异常? 示例1: try { Uri myUri = new Uri("http://example.com/image.jpg", UriKind.RelativeOrAbsolute); JpegBitmapDecoder decoder2 = ne
..
我的目标是使用重写的OnRender方法在WPF窗口上绘制图像“ someImage.png”,该图像是嵌入式资源: 受保护的重写void OnRender(System.Windows.Media.DrawingContext drawingContext) { base.OnRender(drawingContext); drawingContext.DrawImage(Imag
..
使用BitmapSource和PngBitmapEncoder/Decoder保存和加载PNG时出现问题.基本上,我希望能够保存源自字节数组的图像,并且在将PNG加载到程序中后,重新加载完全相同的字节.原始数据保存很重要. 同时,我希望PNG使用自定义调色板(256种颜色的索引数组). 我正在尝试使用自定义索引调色板保存我的8位数据.原始数据的范围为0-255.调色板可以是“阈值"调色
..
如何将BitmapSource转换为MemoryStream.虽然我尝试了一些代码: private Stream StreamFromBitmapSource(BitmapSource writeBmp) { Stream bmp; using (bmp = new MemoryStream()) { Bitm
..