在 C++ 中,有四种显示图像的方法:1. SDL(跨平台);2. Qt(跨平台框架);3. OpenCV(图像处理和计算机视觉库);4. Win32 API(Windows 系统)。选择方法取决于特定情况和应用程序要求。

如何在 C++ 中显示图像
在 C++ 中,有几种方法可以显示图像:
1. SDL (简单直接媒体层)
SDL 是一个跨平台库,支持在不同平台上显示图像:
立即学习“C++免费学习笔记(深入)”;
<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 是另一个跨平台框架,可以通过 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. OpenCV (开放式计算机视觉库)
OpenCV 专注于图像处理和计算机视觉,提供显示图像的函数:
<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
在 Windows 系统中,可以使用 Win32 API 来显示图像:
<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>选择哪种方法取决于具体情况和应用程序的要求。
以上就是c++++如何显示图片的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号