c++如何显示图片

在 c++ 中,有四种显示图像的方法:1. sdl(跨平台);2. qt(跨平台框架);3. opencv(图像处理和计算机视觉库);4. win32 api(windows 系统)。选择方法取决于特定情况和应用程序要求。如何在 C++ 中

在 c++ 中,有四种显示图像的方法:1. sdl(跨平台);2. qt(跨平台框架);3. opencv(图像处理和计算机视觉库);4. win32 api(windows 系统)。选择方法取决于特定情况和应用程序要求。

c++如何显示图片

如何在 C++ 中显示图像

在 C++ 中,有几种方法可以显示图像:

1. SDL (简单直接媒体层)

SDL 是一个跨平台库,支持在不同平台上显示图像:

<code class="cpp">#include <sdl2>

int main(int argc, char* argv[]) {
  SDL_Init(SDL_INIT_EVERYTHING);
  SDL_Surface* screen = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
  SDL_Surface* image = SDL_LoadBMP("image.bmp");
  SDL_BlitSurface(image, NULL, screen, NULL);
  SDL_UpdateWindowSurface(screen);
  SDL_Delay(10000);  // 等待 10 秒
  SDL_Quit();
}</sdl2></code>

登录后复制

2. Qt

Qt 是另一个跨平台框架,可以通过 QWidget 类显示图像:

<code class="cpp">#include <qapplication>
#include <qlabel>
#include <qpixmap>

int main(int argc, char* argv[]) {
  QApplication app(argc, argv);
  QLabel label;
  label.setPixmap(QPixmap("image.png"));
  label.show();
  return app.exec();
}</qpixmap></qlabel></qapplication></code>

登录后复制

3. OpenCV (开放式计算机视觉库)

OpenCV 专注于图像处理和计算机视觉,提供显示图像的函数:

<code class="cpp">#include <opencv2>

int main(int argc, char* argv[]) {
  cv::Mat image = cv::imread("image.jpg");
  cv::imshow("Image", image);
  cv::waitKey(0);  // 等待用户输入
  return 0;
}</opencv2></code>

登录后复制

4. Win32 API

在 Windows 系统中,可以使用 Win32 API 来显示图像:

<code class="cpp">#include <windows.h>

int main(int argc, char* argv[]) {
  BITMAP bitmap;
  BITMAPINFO bitmapInfo;
  ZeroMemory(&amp;bitmapInfo, sizeof(bitmapInfo));
  bitmapInfo.bmiHeader.biSize = sizeof(bitmapInfo);
  bitmapInfo.bmiHeader.biWidth = 640;
  bitmapInfo.bmiHeader.biHeight = 480;
  bitmapInfo.bmiHeader.biPlanes = 1;
  bitmapInfo.bmiHeader.biBitCount = 32;
  void* bits;
  HDC hdc = GetDC(NULL);
  HBITMAP hbitmap = CreateDIBSection(hdc, &amp;bitmapInfo, DIB_RGB_COLORS, &amp;bits, NULL, 0);
  HDC hdcMem = CreateCompatibleDC(hdc);
  HGDIOBJ oldObj = SelectObject(hdcMem, hbitmap);
  HBITMAP hbitmapImage = (HBITMAP)LoadImage(NULL, "image.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
  HDC hdcImage = CreateCompatibleDC(hdc);
  HGDIOBJ oldObjImage = SelectObject(hdcImage, hbitmapImage);
  BitBlt(hdcMem, 0, 0, 640, 480, hdcImage, 0, 0, SRCCOPY);
  SelectObject(hdcMem, oldObj);
  SelectObject(hdcImage, oldObjImage);
  DeleteObject(hbitmapImage);
  DeleteObject(hdcImage);
  DeleteDC(hdcMem);
  ReleaseDC(NULL, hdc);
  DeleteObject(hbitmap);
  return 0;
}</windows.h></code>

登录后复制

选择哪种方法取决于具体情况和应用程序的要求。

以上就是c++++如何显示图片的详细内容,更多请关注叮当号网其它相关文章!

文章来自互联网,只做分享使用。发布者:代号邱小姐,转转请注明出处:https://www.dingdanghao.com/article/387526.html

(0)
上一篇 2024-04-22 18:01
下一篇 2024-04-22 18:40

相关推荐

联系我们

在线咨询: QQ交谈

邮件:442814395@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信公众号