Dalam C++, terdapat empat cara untuk memaparkan imej: 1. SDL (cross-platform); 2. Qt (rangka kerja merentas platform); sistem). Kaedah yang dipilih bergantung pada situasi tertentu dan keperluan aplikasi. . Menyokong paparan imej pada platform yang berbeza:
<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>Salin selepas log masuk
2. Qt
Qt ialah satu lagi rangka kerja merentas platform yang boleh memaparkan imej melalui kelas 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>
<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
Dalam sistem Windows, anda boleh menggunakan API Win32 untuk memaparkan imej:<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>
Atas ialah kandungan terperinci Bagaimana untuk memaparkan gambar dalam c++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!