问题标签 [bitmapsource]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2840 浏览

c# - C# 创建 PixelFormat.Format32bppArgb 倾斜图像

我正在尝试将 3 个灰度位图组合成一个颜色位图。所有三个灰度图像的大小相同(这是基于来自哈勃的数据)。我的逻辑是:加载“蓝色”图像并转换为PixelFormat.Format24bppRgb. 基于此,创建一个新的字节数组,其大小是蓝色数据数组长度/3 的 4 倍(因此它将是一个蓝色字节,一个绿色字节,一个红色字节,一个字节每个像素的 alpha,因为我的系统是小端)。从蓝色图像的“蓝色”字节填充数组的“蓝色”字节(在第一个循环中,将 alpha 字节设置为 255)。然后我加载绿色和红色位图,将它们转换为PixelFormat.Format24bppRgb,然后提取 g/r 值并将其添加到数据数组中的正确位置。然后,根据我的判断,最终的数据数组正确设置了 bgra 字节。

当我填充了数据数组时,我用它来:

创建一个PixelFormats.Bgra32 BitmapSource然后将其转换为位图。

PixelFormat.Format32bppArgb使用 Bitmap 构造函数(宽度、高度、步幅、PixelForma、IntPtr)创建位图

PixelFormat.Format32bppArgb使用指针创建位图

创建返回位图的所有三种方式都会导致图像“倾斜”(抱歉,我不知道更好的词)。

实际输出(生成最终位图的所有三种方式)是:实际输出

所需的输出类似于(这是在 Photoshop 中完成的,因此略有不同):所需的输出

三个文件名 ( _blueFileName, _greenFileName, _redFileName) 在构造函数中设置,我在创建类之前检查以确保文件存在。如果有人想要,我可以发布该代码。

谁能告诉我我做错了什么?我猜这是由于步幅或类似的原因?

注意:我无法发布指向我用作输入的图像的链接,因为我没有 10 个声望点。如果有人也想要它们,也许我可以通过电子邮件或其他方式发送链接。

这是我的代码(注释掉了一些东西,注释描述了如果使用每个注释掉的块会发生什么):

0 投票
1 回答
642 浏览

android - 自定义列表适配器取消绑定视图

我开发了一个自定义列表适配器,我在其中使用持有人附加视图。我还检查了视图是否已经被装箱并一次又一次地重用它们。列表视图在片段内,当我导航到另一个片段时,我正在使用 fragmenttransaction.replace 。但问题是,当我使用 MAT 监视转储文件时,我发现适配器中存在的图像视图仍然保留对位图的引用。甚至其他人的不同观点也有参考。

我想知道如何删除对该视图的引用?

0 投票
1 回答
4815 浏览

wpf - 将 BitmapSource 转换为 BitmapImage 的更快方法

我们有一些视频软件可以将其转换BitmapSourceBitmapImage稍后使用以下代码将其绘制到屏幕上。问题是在速度较慢的机器上,这个过程似乎有点慢,运行 MS 分析器发现这些位图操作(即ToBitmapImage函数)是我们进行的前 4 个最昂贵的调用。我能做些什么来提高效率吗?

0 投票
1 回答
742 浏览

c# - 如何仅知道图像路径将图像保存到剪贴板

假设我有一个图像路径C:\MyImages\MyImage.jpg,我将如何使用 C# 将它放到剪贴板上。

我知道我会使用该类System.Windows.Clipboard.SetImage(); ,但这需要 aBitmapSource作为参数。我如何让一个BitmapSource对象从给定的路径输入到这个方法中?

0 投票
1 回答
75 浏览

android - 使用基本适配器从 Db 链接 Android 图片

所以 em,第一次在这里提问,我正在开发一个 android 应用程序,其中我有一个带有图像网格视图的片段。我正在使用数据库来保存图像 URL,并使用图片适配器将它们转换为位图。

如何将名为 COLUMN_IMAGElINK 的列中的所有字符串提取到字符串数组,或者将我的数据库字符串发送到我的图片适配器类?

0 投票
2 回答
375 浏览

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

到目前为止,我有:

然后我想我能以某种方式从 img 获得 BitmapSource 吗?如果这是完全错误的,请随时纠正我。

0 投票
0 回答
474 浏览

ffmpeg - 解码 H264 流并转换为 BitmapSource?

FFMPEG用来解码H264流。

输出帧中的结果是AVFrame* pFrame,它的格式可能是YUV420P

我想转换pFrameRGB然后BimapSource从中构造RGB.

我在互联网上搜索过,有很多方法可以pFrameRGB.

但我需要的最终输出BitmapSourceC#. 所以我不知道哪种方式更好?

有人可以告诉我转换的算法pFrame -> RGB -> BitmapSource

性能对于这个阶段非常重要,所以我需要最快的算法。

非常感谢,

T&T!

0 投票
1 回答
455 浏览

c# - WPF:绘制位图 - 访问冲突?

我的程序正在将位图帧作为视频绘制到 WPF 控件。

示例代码如下:

我的代码遇到了两个问题:

"Insufficient memory to continue the execution of the program"1)有时它在在线运行时会与消息一起崩溃JpegBitmapDecoder^ decoder = gcnew JpegBitmapDecoder(...)

2)有时它会因“访问冲突”消息而崩溃,这种情况下的调用堆栈如下:

在此处输入图像描述

有人可以告诉我代码中的问题。

非常感谢!

电通

0 投票
0 回答
187 浏览

wpf - 什么时候应该调用 GC.Collect()?

我正在使用 BitmapSource 将帧绘制为从 IP 摄像机获取的视频。以下是摘要代码。

问题是,从任务管理器查看的内存使用量非常大。并且经过一段时间后,当内存使用量大约为 1300MB 时,the application is not responding.

我的应用是 32bit,IP Camera 的分辨率是 1280x960,每秒帧数是 25,有 4 个摄像头。每个位图帧约为 3.5 MB。这意味着这种情况下的速度分配内存约为 3,5*25*4 = 350 MB/秒。

所以内存增加得非常快,似乎 GC 无法覆盖它。因此造成"The application is not responding"

我试图GC.Collect()在每个while循环中调用如下代码。该应用程序运行良好。但这会导致 CPU 消耗。

为了避免 CPU 消耗,我尝试GC.Collect()通过下面的计时器线程在 1s 后调用

这种方式解决了CPU消耗问题。但是内存使用量非常大的问题依然存在。

有人可以向我展示解决我的问题的最佳方法。

0 投票
0 回答
531 浏览

c# - 从 BitmapSource 转换为 Visual?

有没有办法从 a 转换System.Windows.Media.Imaging.BitmapSource为 a System.Windows.Media.Visual?我有一个 a 的实例,BitmapSource但我想将其转换为 aVisual以便我可以利用 WPF 矢量图形。我已经看到很多从视觉到位图的例子,但是我怎样才能使用 C# 去另一个方向呢?