>  기사  >  백엔드 개발  >  C++에서 그림을 표시하는 방법

C++에서 그림을 표시하는 방법

下次还敢
下次还敢원래의
2024-04-22 17:51:37881검색

C++에는 이미지를 표시하는 방법이 4가지 있습니다: 1. SDL(크로스 플랫폼), 2. Qt(크로스 플랫폼 프레임워크), 3. OpenCV(이미지 처리 및 컴퓨터 비전 라이브러리) 시스템). 선택하는 방법은 특정 상황과 애플리케이션 요구 사항에 따라 다릅니다.

C++에서 그림을 표시하는 방법

C++에서 이미지를 표시하는 방법

C++에서는 여러 가지 방법으로 이미지를 표시할 수 있습니다.

1. SDL(Simple Direct Media Layer)

SDL은 크로스 플랫폼 라이브러리입니다. 다양한 플랫폼에서 이미지 표시 지원:

<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. 이미지 처리 및 컴퓨터 비전에 중점을 두고 이미지 표시 기능 제공:

<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.