我需要使用 C++(Windows 10)在控制台窗口中显示图像(bmp)。
不是按字符显示,因为我已经知道如何显示,而是像普通图像一样逐像素显示图像。
而不是通过启动另一个应用程序来在另一个窗口中显示图像,而是在黑色控制台窗口中。
我已经在互联网上搜索了它,但似乎没有找到不使用opencv之类的方法来做到这一点。有没有办法自己做,没有opencv?
原文由 beryllium 发布,翻译遵循 CC BY-SA 4.0 许可协议
我需要使用 C++(Windows 10)在控制台窗口中显示图像(bmp)。
不是按字符显示,因为我已经知道如何显示,而是像普通图像一样逐像素显示图像。
而不是通过启动另一个应用程序来在另一个窗口中显示图像,而是在黑色控制台窗口中。
我已经在互联网上搜索了它,但似乎没有找到不使用opencv之类的方法来做到这一点。有没有办法自己做,没有opencv?
原文由 beryllium 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
1 回答3.3k 阅读
您的假设是错误的:通常 C++(或 C)程序甚至可能不会从某个“控制台窗口”启动(例如,它可能以“批处理模式”启动)。特别是,一些 C++ 实现可以在没有任何屏幕(因此没有任何控制台窗口)的计算机上运行(例如数据中心的 Linux 服务器,这是 Internet 上的大多数服务器)。大多数 500 强 超级计算机 没有您可以访问的屏幕,但运行在它们上的 HPC 软件(例如 Tripoli-4 )通常是用 C++ 编码的。嵌入式计算机(例如您的 RaspberryPi )可以使用标准 C++(例如 C++11 或 C++14)进行编程,无需任何屏幕或控制台窗口(例如,在 2020 年使用配置为 交叉 编译的最新 GCC 编译器)
(即使在我不知道且从未使用过的 Windows 上,我确信有一些方法可以在任何“控制台窗口”存在之前启动程序 - 通过配置计算机来启动一些守护程序或服务器)
因此,您应该更准确地定义您的平台是什么。一般来说,答案可能是特定于平台和操作系统的。另请参阅 OSDEV 以获取开源操作系统的示例: FreeBSD 是一个著名的操作系统,它具有能够编译 C++ 应用程序的 GCC 或 Clang 编译器。
我强烈建议使用像 Qt 这样的可移植图形框架(特别是因为如果您仔细编码,它可以使您的代码更加可移植)。当然,您随后需要您的用户拥有它,或者您分发包含 Qt 的代码。还可以考虑使用 FLTK 或 FOX 或 SFML 工具包。
C++14 标准(以及 C++11 及更早版本)不了解图像或控制台窗口,因此(通常,不提及任何平台或操作系统)您的问题毫无意义。
研究现有开源程序或用 C++ 编码的库(在 github 或 gitlab 上)的源代码以获得灵感,例如 fish shell、 KDE 、 GCC 、 Clang 静态分析器(它们都应该对你有用)、 RefPerSys 等等等等……