En C++, il existe quatre façons d'afficher des images : 1. SDL (multiplateforme) ; 2. Qt (framework multiplateforme) ; 3. OpenCV (bibliothèque de traitement d'images et de vision par ordinateur) ; système ). La méthode choisie dépend de la situation spécifique et des exigences de l'application.
Comment afficher des images en C++
En C++, il existe plusieurs façons d'afficher des images :
1 SDL (Simple Direct Media Layer)
SDL est une bibliothèque multiplateforme, Prend en charge l'affichage d'images sur différentes plates-formes :
<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
Qt est un autre framework multiplateforme qui peut afficher des images via la classe 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(); }</code>
3. se concentre sur le traitement d'image et la vision par ordinateur, fournissant des fonctions d'affichage d'images :
<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. API Win32
Dans les systèmes Windows, vous pouvez utiliser l'API Win32 pour afficher des images :
<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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!