[c++] C++ 그래픽 프로그래밍에서의 이미지 로딩과 표시

이미지를 로딩하고 표시하는 것은 C++ 그래픽 프로그래밍에서 매우 일반적입니다. 이미지를 로딩하고 화면에 표시하는 방법에 대해 알아보겠습니다.

이미지 로딩

C++에서 이미지를 로딩하기 위해서는 적합한 라이브러리를 사용할 수 있습니다. 대표적으로 OpenCVSFML이 있습니다.

OpenCV를 이용한 이미지 로딩

#include <opencv2/opencv.hpp>

int main() {
    cv::Mat image = cv::imread("image.jpg");
    if (image.empty()) {
        std::cout << "이미지를 읽을 수 없습니다." << std::endl;
        return -1;
    }
    // 이미지 로딩 성공
    return 0;
}

SFML을 이용한 이미지 로딩

#include <SFML/Graphics.hpp>

int main() {
    sf::Texture texture;
    if (!texture.loadFromFile("image.jpg")) {
        std::cout << "이미지를 읽을 수 없습니다." << std::endl;
        return -1;
    }
    // 이미지 로딩 성공
    return 0;
}

이미지 표시

로딩한 이미지를 화면에 표시하는 것은 그래픽 라이브러리에 따라 다를 수 있지만, 일반적으로 캔버스(화면)에 이미지를 그립니다.

OpenCV를 이용한 이미지 표시

#include <opencv2/opencv.hpp>

int main() {
    cv::Mat image = cv::imread("image.jpg");
    if (image.empty()) {
        std::cout << "이미지를 읽을 수 없습니다." << std::endl;
        return -1;
    }

    cv::imshow("이미지", image);
    cv::waitKey(0);
    return 0;
}

SFML을 이용한 이미지 표시

#include <SFML/Graphics.hpp>

int main() {
    sf::RenderWindow window(sf::VideoMode(800, 600), "이미지 표시");
    sf::Texture texture;
    if (!texture.loadFromFile("image.jpg")) {
        std::cout << "이미지를 읽을 수 없습니다." << std::endl;
        return -1;
    }

    sf::Sprite sprite(texture);
    window.draw(sprite);
    window.display();

    while (window.isOpen()) {
        sf::Event event;
        while (window.pollEvent(event)) {
            if (event.type == sf::Event::Closed)
                window.close();
        }
    }
    return 0;
}

이와 같이 C++ 그래픽 프로그래밍에서 이미지를 로딩하고 표시하는 기본적인 방법을 살펴보았습니다.

참고문헌