问题标签 [freeimage]

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 回答
1143 浏览

c++ - 获取 FreeImage 像素数据格式?

这是一个简单的问题,但我似乎无法在文档的任何地方找到答案。我知道 FreeImage 支持1, 4, 8, 16, 24, and 32+ bit图像。但除此之外,文档提到16 bit图像可以是任何一种格式555565格式。我想知道其他图像位深度存储为什么格式?或者如果格式是任意的,有没有办法从 FreeImage 库中动态检索格式?

0 投票
1 回答
781 浏览

c++ - 从 unsigned char*(freeimage) 创建 fipImage*?

如何从这些数据中创建 fipImage*?

C++。


此函数写入 image_data

我想从 image_data 创建 fipImage

0 投票
0 回答
1338 浏览

c++ - 创建一个指向现有内存缓冲区的 HBITMAP

我正在使用FreeImage库来存储和操作位图数据。我的部分代码要求我截取窗口(在 Windows 中),并将其存储为FBITMAP*(FreeImage 的位图数据结构)。我解决这个问题的方法包括两个步骤:捕获图像,然后将其转换为FBITMAP*.

要捕获图像,我会执行以下操作:

FreeImage 提供了一个函数,它返回一个指向像素数据的原始指针:

BYTE* FreeImage_GetBits(FBITMAP*)

常见问题解答解释说HBITMAP(位图的 WinAPI 句柄)可以转换为FBITMAP*using GetDIBits,它将源HBITMAP和目标原始指针作为参数,并将像素数据从一个复制到另一个。

这种方法的问题是我已经将数据复制了两次——一次是BitBlt从窗口 DC 复制到HBITMAP内存 DC 中的选定内容,然后再次从HBITMAPFreeImage 内存缓冲区复制。我希望消除这种低效率并将数据直接复制到BitBlt操作中的原始指针。为此,我需要一个内存 DC,其中有一个HBITMAP选定的内存 DC,它HBITMAP指向我的内存缓冲区,而不是 Windows 为其分配的内存。

我怎样才能做到这一点?

0 投票
1 回答
5876 浏览

c++ - 将 FreeImage 链接为 VS2010 中的静态库?

我需要一个图像库,并且我一直在研究 FreeImage, http: //freeimage.sourceforge.net/。我想将它与我的应用程序静态链接。

我已经尝试下载二进制文件并将其链接,但是当我尝试调用它们的函数时出现 2019 链接器错误,即使我很肯定我链接它是正确的。

然后我尝试下载他们的源代码,将他们的“FreeImageLib.2008”转换为 VS2010 并构建它。它自己构建得很好,但是在链接它时我仍然遇到同样的问题,我使用它的应用程序仍然抱怨链接器错误。

我还设置了所有项目配置以匹配我的其他项目,因此与/MDd或/MTd等没有冲突。

我在他们的源代码中进行了一些挖掘,并且有像“FREEIMAGE_LIB”这样的宏,这表明应该在构建静态库时定义它,并且它已定义,但它仍然不起作用。

我用谷歌搜索了这个问题,找不到任何可靠的答案。让 FreeImage 与 Visual Studio 2010 一起工作的答案没有区别;我已经在包含标头之前或作为预处理器参数定义了宏,但它不起作用。

这个库是否不打算用作静态库,或者可能是什么问题?有没有人能够在 VS2010+ 上静态链接 FreeImage?

谢谢

0 投票
1 回答
7473 浏览

c# - 将 FreeImage .NET 添加到解决方案

我已经关注了这方面的帖子,但我仍然没有几步。我是 C# 的新手,这可能就是问题所在。我很想得到一点帮助(我整天都在敲这个)。

我可以在 Visual Studio 中打开 FreeImage.NET 解决方案(Win7 64 位机器)。这篇文章说我需要构建它来获取 C# dll。当我构建它时,我收到数百个错误“找不到类型或名称空间'名称'”。

是否需要先添加 C++ DDL?我将它拖放到解决方案上,但仍然是错误。

我在做一些简单而错误的事情吗?

具体来说,我想做的是将 FreeImage 添加到 C# Visual Studio Express 2012 中的项目中。

谢谢,丹

0 投票
1 回答
622 浏览

c++ - 无需单独的程序或库即可录制 opengl 视频

我如何从 FIBITMAP(自由图像)对象中获取数据并将其存储到二进制文件中。

我已经知道如何将数据存储为图像,但我想将其存储为类似于 Fraps 的视频。我的目标是创建一个 FIBITMAP 图像列表并以二进制(.avi 或 .mp4 格式)文件写入它们。

这是我的截图代码:

0 投票
2 回答
2471 浏览

c# - 使用 FreeImage 加载 tiff

我用 FreeImage 尝试了这段代码来加载我的 tif,我没有收到任何错误,但也没有输出。如果输入是 jpg,它就可以正常工作。我的 tiff 输入是 16 位灰度。

我尝试在没有修饰符的情况下加载,仅使用文件名,结果相同。还尝试了 LoadEx。

非常感谢,丹

0 投票
3 回答
741 浏览

image-processing - 计算 48 位图像直方图

我有一个用 FreeImage 加载的 48 位(每像素 16 位)图像。我正在尝试从此图像生成直方图,而无需将其转换为 24 位图像。

这就是我理解直方图的计算方式..

哪里pixel.red可以在 0 到 255 之间。所以我的直方图上有一个从 0 到 255 的范围。但是如果每个像素有 16 位,它可能在 0 到 65535 之间,这太大而无法显示在直方图上。

有没有标准的方法来计算 48 位(或更高)图像的直方图?

0 投票
0 回答
871 浏览

jpeg - 免费图片 RGB 和 BGR

我正在使用 FreeImage 加载 jpeg 和 tiff。jpeg 是 24 位 (8 bpp)。tiff 为 48 位 (16 bpp)。

问题是,FreeImage 将 jpeg 加载为 BGR,将 tiff 加载为 RGB。

如何区分这 2 个以便我可以正确地将其渲染到屏幕上?

0 投票
1 回答
804 浏览

c - FreeImage 包含在 c 中

有没有办法在我的 c 测试程序中包含http://freeimage.sourceforge.net/index.html而无需先安装库?由于某些 memset,它无法编译。

这是我的 C 代码。有什么办法让它工作吗?请尝试编译它并告诉我如果它有效怎么做?