问题标签 [bitmap]

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 投票
2 回答
17681 浏览

c# - GZipStream 和 DeflateStream 不会解压所有字节

我需要一种在 .net 中压缩图像的方法,所以我研究了使用 .net GZipStream 类(或 DeflateStream)。但是我发现解压并不总是成功的,有时图像会很好地解压,有时我会得到一个 GDI+ 错误,表明某些东西已损坏。

在调查了这个问题后,我发现解压缩并没有返回它压缩的所有字节。因此,如果我压缩了 2257974 字节,我有时只会返回 2257870 字节(实数)。

最有趣的是,有时它会起作用。所以我创建了这个只压缩 10 个字节的小测试方法,现在我什么也拿不回来。

我用压缩类 GZipStream 和 DeflateStream 都试过了,我仔细检查了我的代码是否有可能的错误。我什至尝试将流定位到 0 并刷新所有流,但没有运气。

这是我的代码:

0 投票
3 回答
5440 浏览

opengl - 将位图转换为多边形 - (反向光栅化)

给定一个带有一些纯色斑点的位图图像,你会使用什么算法来构造与这些斑点形状相同的多边形?

这可以通过多个步骤完成:高分辨率多边形可以稍后通过最佳拟合算法进行切割。如果您能告诉我如何将生成的多边形切割成凸组件,以便它们可以在 OpenGL 中毫无问题地渲染,则可以加分。

0 投票
4 回答
1163 浏览

image - 图像 DPI 解释

尝试编写 DPI 的定义导致我:

DPI(点)、PPI(点)、LPI(线)都是指同一个概念,以下简称 DPI。

DPI 是依赖于设备的测量。它说,“这是这个设备的分辨率。”

基于矢量的文件不依赖于任何一个 DPI(它们会扩展和收缩以符合特定的分辨率)。

当该基于矢量的文件被渲染为基于“位图”的格式 - (bmp,png,tiff,jpg)等......该“位图”文件以特定DPI创建以在“条带”上打印(或显示)或以特定 DPI 输出的基于“扫描线”的设备。

现在,有些人会争辩说,基于“位图”的文件中不存在 DPI。

我正在寻找 DPI 的定义,以及如何或为什么认为它不存在于位图图像中?

0 投票
2 回答
3024 浏览

.net - Compact Framework - Image.FromStream (Stream, Boolean, Boolean) 的任何实现?

在我编写的 .NET CF 应用程序中,功能之一是从远程摄像机获取帧。帧以单个 jpeg 图像的形式获取,并在可用时显示在屏幕上。

这是一个足够好的解决方案,但我不喜欢使用构造函数将流转换为Image对象所需的时间远远大于下载流所需的时间。Bitmap()

当我浏览一些博客搜索这个问题时,我发现一些开发人员正在使用带有一个似乎控制一些验证代码Image.FromStream()的标志的方法。validateImageDatavalidateImageData为 false 时,转换会显着加快。

很好,我想....但是 Compact Framework 没有实现这个方法!

任何人都知道如何绕过它,或者至少如何将流转换为Image没有不必要的延迟?

0 投票
4 回答
2992 浏览

compact-framework - 在 CF.NET 中创建大位图时出现 OutOfMemoryException

我的紧凑框架应用程序通过将所有项目渲染到一个大的位图表面来创建一个平滑滚动列表,然后将该位图复制到屏幕上的偏移位置,以便仅显示适当的项目。旧版本只渲染当时应该出现在屏幕上的项目,但是这种方法对于平滑的滚动界面来说太慢了。

最初创建大位图时,它偶尔会生成 OutOfMemoryException。如果用户对设备执行软重置并再次运行应用程序,则可以毫无问题地执行创建。

看起来这个位图不是在程序内存中生成的,因为应用程序使用的程序内存量与新平滑滚动方法之前使用的程序内存量大致相同。

有什么方法可以防止这种异常吗?有什么方法可以在抛出异常之前释放我需要的内存(无论它在哪里)?

0 投票
2 回答
6467 浏览

gdi+ - 如何使用 GetHBITMAP 方法?

我有一个 gdi+ 位图,我想将位图转换为 HBitmap。我编写以下代码。

但它不起作用,我怎样才能获得 HBitmap?

0 投票
4 回答
7628 浏览

web-applications - 在 VBscript 中绘制图形

我有一个 HTML 应用程序,部分是 HTML,部分是 VBscript,伪装成一个表单。它的作用是打开一些本地文件,运行一个包含 GAWK 的 DOS 框,并显示一个文本文件作为其结果。我希望通过让它创建一个位图图像来扩展它,结果是堆积条形图中的结果,例如作为 .BMP 文件。但我很难过。我不知道从哪里开始。

0 投票
2 回答
14103 浏览

c++ - 如何从 HBITMAP 创建 Gdiplus::Bitmap,保留 alpha 通道信息?

当我使用 Bitmap::FromHBITMAP 函数创建一个新的 Gdiplus::Bitmap 时,生成的位图是不透明的 - 原始 HBITMAP 的部分透明度没有被保留。

有没有办法从 HBITMAP 创建一个 Gdiplus::Bitmap ,它带来了 alpha 通道数据?

0 投票
3 回答
2172 浏览

c++ - 从 VB6 访问 C++ DLL 中的位图资源

我有一个 C++ DLL,包括由 Visual Studio 创建的位图资源。

虽然我可以使用 LoadLibrary 在 VB6 中加载 DLL,但我无法使用 LoadImage 或 LoadBitmap 加载图像资源。当我尝试使用 GetLastError() 获取错误时,它不会返回任何错误。

我曾尝试在另一个具有相同 DLL 的 C++ 程序中使用 LoadImage 和 LoadBitmap,它们可以正常工作。

有没有其他方法可以使用 VB6 访问 C++ DLL 中的资源位图?

0 投票
2 回答
10234 浏览

c++ - 将 hdc 内容复制到位图

如何将 HDC 的内容复制到位图?