Heim >Backend-Entwicklung >C++ >So zeigen Sie Bilder in C++ an

So zeigen Sie Bilder in C++ an

下次还敢
下次还敢Original
2024-04-22 17:51:37932Durchsuche

In C++ gibt es vier Möglichkeiten, Bilder anzuzeigen: 1. SDL (plattformübergreifendes Framework); 3. OpenCV (Bildverarbeitungs- und Computer-Vision-Bibliothek); System ). Die gewählte Methode hängt von der konkreten Situation und den Anwendungsanforderungen ab.

So zeigen Sie Bilder in C++ an

So zeigen Sie Bilder in C++ an

In C++ gibt es mehrere Möglichkeiten, Bilder anzuzeigen:

1. SDL (Simple Direct Media Layer)

SDL ist eine plattformübergreifende Bibliothek, Unterstützt die Anzeige von Bildern auf verschiedenen Plattformen:

<code class="cpp">#include <SDL2/SDL.h>

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();
}</code>

2. Qt ist ein weiteres plattformübergreifendes Framework, das Bilder über die QWidget-Klasse anzeigen kann:

<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();
}</code>

OpenCV konzentriert sich auf Bildverarbeitung und Computer Vision und bietet Funktionen zum Anzeigen von Bildern:

<code class="cpp">#include <opencv2/opencv.hpp>

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

4. Win32-API

In Windows-Systemen können Sie die Win32-API zum Anzeigen von Bildern verwenden:

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

int main(int argc, char* argv[]) {
  BITMAP bitmap;
  BITMAPINFO bitmapInfo;
  ZeroMemory(&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, &bitmapInfo, DIB_RGB_COLORS, &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;
}</code>

Welche Methode Sie wählen, hängt von der jeweiligen Anwendung ab Situation und Anwendungsanforderungen.

Das obige ist der detaillierte Inhalt vonSo zeigen Sie Bilder in C++ an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn