轻量级 C++ 图像库 [关闭]

     2023-03-15     146

关键词:

【中文标题】轻量级 C++ 图像库 [关闭]【英文标题】:light-weight C++ image library [closed] 【发布时间】:2012-08-02 17:35:20 【问题描述】:

我一直在寻找用于 C++ 的简单、小巧但健壮且快速(全面!)的图像库(如果没有可用的 C++ 版本,C 就足够了)。

我正在寻找的主要功能是:

免费(开源是加分项) 为速度而生 没有巨大的功能膨胀(例如 ImageMagik,它确实很全面,但却是个庞然大物) 很小的内存占用 仅支持加载/保存、调整大小、格式转换等功能的绝对最小值。没什么特别的 “损坏”文件的错误恢复(不像stb_image.c,它的错误恢复很差) MSVC 和 gcc 友好(我使用 CxImage 很多年了,但在最新版本中,我遇到了 MSVC 2010 的问题,而且似乎对它的积极开发和支持现在已经消失了,所以我我要放弃了) 应支持流行的现代格式,如 JPEG2000,直接或通过使用通用库如libpng 不管它是 DirectX 还是 OpenGL,因为我不打算用它来显示图像 - 只是为了对网站进行文件处理 同时支持静态和动态链接是一个加分项 线程支持是一大优势

出于某种原因我查看并关闭的库:

CxImage(不再积极开发) ImageMagik - 太大(太慢) stb_image.c - 错误处理错误,不支持足够的图像格式 DevIL(还没有被解雇,但也没有看太多 - 几分钟前刚刚在 SO 上的类似帖子中了解到它) - 基于它的大小和功能集,它看起来很有希望不过我需要 FreeImage(与 DevIL 相同 - 稍后会查看它,但它的大小对我来说有点大) 土壤(与 stb_image.c 相同) TimThumb - 它是 PHP,而不是 C/C++

简而言之,我只想要尽可能小和尽可能快的东西,代价是只拥有绝对最低限度的功能,但到目前为止我还没有找到合适的候选人。

请问这个社区有什么建议吗?但请记住我上面列出的限制——我认为抛出“你试过 X 吗?”形式的答案是不行的。其中“X”不能满足我一半的需求:)

编辑:深入研究 DevIL,它似乎是我所需要的。它轻巧、小巧、坚固。现在我只需要确保它执行。 哦,还有 CImage(我忘了在列表中提到它)——不喜欢它的性能(尽管我不得不承认,仅模板实现的想法很可爱,至少可以这么说)

【问题讨论】:

CxImage 由那里的开发人员为 XBMC 维护,它可能是你想要的。 它必须是开源的还是跨平台的?你的目标平台是什么? 我的目标平台既是与工作相关的项目,也是我的个人项目,所以范围是 Windows + Linux(可能有一天是 iOS)。到目前为止,仅限桌面,主要是在 web 服务器的上下文中(IIS,阿帕奇) ***.com/questions/50079/c-image-library 【参考方案1】:

我强烈建议您围绕libpng 和jpeglib(以及您需要支持的格式的所有其他低级库)编写一个小库。这并不难,您可以编写所需的所有功能。

作为替代方案,您可以使用该库已经存在的一些优秀的 c++ 包装器。下面是一些例子:

png++ JPEGReader/JPEGWriter

【讨论】:

看来这就是我要走的路,毕竟:)【参考方案2】:

看看CImg库,它只是一个单独的头文件

【讨论】:

我对内存占用及其性能不满意 它简单轻巧,但我很确定这个库偶尔会导致内存分段错误。 漂亮确定吗?任何人都可以确认或否认这一点吗?我正在考虑在我的项目中使用它。 @Octopus 正在检查回复,因为回复您的人没有正确突出您。我知道已经 5 年了,您可能没有答案,但您所说的是对图书馆的非常严重的索赔,因为像我这样的人非常强烈地反对使用“segfaults”的图书馆。 我已经使用了一段时间,我很惊讶它的 IO 似乎非常慢,无论如何对于 PNG 文件。我没有仔细研究细节,但出于某种原因,保存一个 1080 x 1920 PNG 文件大约需要 5 秒。哦,顺便说一句,我有一个绝对的机器怪物(Windows 10)。

高质量图像缩放库[关闭]

】高质量图像缩放库[关闭]【英文标题】:HighQualityImageScalingLibrary[closed]【发布时间】:2010-09-1923:01:42【问题描述】:我想以与Photoshop一样好的质量水平在C#中缩放图像。有没有可用的C#图像处理库来做这件事?【问题讨论】:这... 查看详情

在 C++ 中显示图像及其元数据 [关闭]

】在C++中显示图像及其元数据[关闭]【英文标题】:DisplayinganimageanditsmetadatainC++[closed]【发布时间】:2018-02-2314:16:04【问题描述】:我正在学习使用C++进行Linux编程。作为一个项目,我想制作一个程序,它会弹出一个窗口并显示图... 查看详情

轻量级 C++ 脚本库

】轻量级C++脚本库【英文标题】:lightweightC++scriptinglibrary【发布时间】:2009-05-2713:41:51【问题描述】:我目前在我的C++应用程序中使用QtScript来编写脚本功能,但它在cpu上相当“重”。当一个线程在一个循环中评估所有脚本时,c... 查看详情

C ++业务规则表达式解析器/评估[关闭]

...3-10-1310:36:27【问题描述】:我正在寻找以C++编写的可移植轻量级库的建议,这些库支持数学和业务规则表达式和评估。我了解C++在STL中不提供此类功能。基本要求如下:要评估的表达式将由数字和字符串以及表示数字或字符串的... 查看详情

最易于使用、轻量级、独立于平台的 C++ 图形库

】最易于使用、轻量级、独立于平台的C++图形库【英文标题】:Easiesttouse,lightweight,platformindependentgraphinglibraryforC++【发布时间】:2012-04-2506:50:51【问题描述】:什么是最简单的使用c++库来绘制matlab和octave之类的函数?我查看了几... 查看详情

c++无依赖库的websocket实现

1.简单websocket客户端实现参考源码:见:GitHub-hank4187yan/light-websocket-client:非常轻量级的websocket客户端,无第三方依赖库非常轻量级的websocket客户端,无第三方依赖库.Contributetohank4187yan/light-websocket-clientdevelo 查看详情

c++无依赖库的websocket实现

1.简单websocket客户端实现参考源码:见:GitHub-hank4187yan/light-websocket-client:非常轻量级的websocket客户端,无第三方依赖库非常轻量级的websocket客户端,无第三方依赖库.Contributetohank4187yan/light-websocket-clientdevelo 查看详情

用于跨浏览器事件支持的轻量级库 [关闭]

】用于跨浏览器事件支持的轻量级库[关闭]【英文标题】:Lightweightlibraryforcross-browsereventsupport[closed]【发布时间】:2011-03-2000:54:24【问题描述】:跨浏览器处理有时很麻烦。在这种情况下,我需要捕获相当多的事件,但不能使用... 查看详情

用于操作图像的 C++ 库

】用于操作图像的C++库【英文标题】:C++librariestomanipulateimages【发布时间】:2010-09-0716:27:23【问题描述】:您是否知道任何开源/免费软件C++库来处理这些格式的图像:.jpg.gif.png.bmp?它支持的格式越多越好。我正在用C++实现一个免... 查看详情

如何搜索轻量级 JS 包(替代库来替换我的库)? [关闭]

】如何搜索轻量级JS包(替代库来替换我的库)?[关闭]【英文标题】:HowtosearchforlightweightJSpackages(alternativelibstoreplacemylibs)?[closed]【发布时间】:2020-10-2413:07:26【问题描述】:有人告诉我有一些网站可以寻找JS/Node.js的轻量级库替... 查看详情

替代 Apache Commons DbUtils 的轻量级 JDBC 帮助程序库 [关闭]

】替代ApacheCommonsDbUtils的轻量级JDBC帮助程序库[关闭]【英文标题】:LightweightJDBChelperlibraryalternativetoApacheCommonsDbUtils[closed]【发布时间】:2011-10-3113:30:46【问题描述】:我刚刚开发了自己的小型JDBC帮助程序库,我已经意识到这将是... 查看详情

使用 C++ 显示图像 [关闭]

】使用C++显示图像[关闭]【英文标题】:Showinganimageusingc++[closed]【发布时间】:2017-01-2207:46:18【问题描述】:我已经编写了这段代码,用于在C++中显示图像。#include<opencv2/core/core.hpp>#include<opencv2/imgcodecs.hpp>#include<opencv2/... 查看详情

用于图像识别的 C++ 库:包含单词到字符串的图像

】用于图像识别的C++库:包含单词到字符串的图像【英文标题】:C++Libraryforimagerecognition:imagescontainingwordstostring【发布时间】:2010-10-0213:09:54【问题描述】:是否有人知道用于拍摄图像并对其执行图像识别的c++库,以便它可以根... 查看详情

C++动态库基础[关闭]

】C++动态库基础[关闭]【英文标题】:c++dynamiclibararyfundamentals[closed]【发布时间】:2013-11-2408:40:16【问题描述】:UsingGCC4.6.2[MinGW]我对动态库有点困惑,我知道他们已经在SO上进行了很多讨论,但之前的帖子都没有回答我的问题。... 查看详情

Visual C++ 6 教程上的 ActiveX [关闭]

...59【问题描述】:我必须构建一个基于ActiveX库(用于Matrox图像采集器的MIL)的应用程序。该库应该已经在工作,因为它编译并运行作为示例提供的控制台应用程序。(是的,控制台应用程序可能根本没有使用任何ActiveX……我其... 查看详情

C++ 图像处理库

】C++图像处理库【英文标题】:ImageProcessingLibraryforC++【发布时间】:2010-10-0422:46:30【问题描述】:我需要一个可以检测图像中对象的库(使用边缘检测)。这与验证码无关。我正在开发一个使用OCR并且可以在任何屏幕分辨率下... 查看详情

有哪些 C++ 标准库使用最佳实践? [关闭]

】有哪些C++标准库使用最佳实践?[关闭]【英文标题】:WhataresomeC++StandardLibraryusagebestpractices?[closed]【发布时间】:2009-02-1817:02:02【问题描述】:我正在学习C++,而我正在阅读的书(C++编程语言)说不要重新发明***,而是要依赖... 查看详情

C++ 字符串的通用库 [关闭]

】C++字符串的通用库[关闭]【英文标题】:UniversallibraryforC++strings[closed]【发布时间】:2010-12-2014:08:55【问题描述】:请向我推荐C++字符串的通用库。我想在一个构建中操作ascii文本和unicode文本,而不为std::string/char和std::wstring/wcha... 查看详情