如何在控制台窗口中使用 C 显示图像?

新手上路,请多包涵

我需要使用 C++(Windows 10)在控制台窗口中显示图像(bmp)。

不是按字符显示,因为我已经知道如何显示,而是像普通图像一样逐像素显示图像。

而不是通过启动另一个应用程序来在另一个窗口中显示图像,而是在黑色控制台窗口中。

我已经在互联网上搜索了它,但似乎没有找到不使用opencv之类的方法来做到这一点。有没有办法自己做,没有opencv?

原文由 beryllium 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 490
1 个回答

您的假设是错误的:通常 C++(或 C)程序甚至可能不会从某个“控制台窗口”启动(例如,它可能以“批处理模式”启动)。特别是,一些 C++ 实现可以在没有任何屏幕(因此没有任何控制台窗口)的计算机上运行(例如数据中心的 Linux 服务器,这是 Internet 上的大多数服务器)。大多数 500 强 超级计算机 没有您可以访问的屏幕,但运行在它们上的 HPC 软件(例如 Tripoli-4 )通常是用 C++ 编码的。嵌入式计算机(例如您的 RaspberryPi )可以使用标准 C++(例如 C++11 或 C++14)进行编程,无需任何屏幕或控制台窗口(例如,在 2020 年使用配置为 交叉 编译的最新 GCC 编译器)

(即使在我不知道且从未使用过的 Windows 上,我确信有一些方法可以在任何“控制台窗口”存在之前启动程序 - 通过配置计算机来启动一些守护程序或服务器)

因此,您应该更准确地定义您的平台是什么。一般来说,答案可能是特定于平台和操作系统的。另请参阅 OSDEV 以获取开源操作系统的示例: FreeBSD 是一个著名的操作系统,它具有能够编译 C++ 应用程序的 GCCClang 编译器。

我强烈建议使用像 Qt 这样的可移植图形框架(特别是因为如果您仔细编码,它可以使您的代码更加可移植)。当然,您随后需要您的用户拥有它,或者您分发包含 Qt 的代码。还可以考虑使用 FLTKFOXSFML 工具包。

C++14 标准(以及 C++11 及更早版本)不了解图像或控制台窗口,因此(通常,不提及任何平台或操作系统)您的问题毫无意义。

研究现有开源程序或用 C++ 编码的库(在 githubgitlab 上)的源代码以获得灵感,例如 fish shell、 KDEGCCClang 静态分析器(它们都应该对你有用)、 RefPerSys 等等等等……

原文由 Basile Starynkevitch 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题