[c++] C++ 그래픽 프로그래밍에서의 이미지 로딩과 표시
이미지를 로딩하고 표시하는 것은 C++ 그래픽 프로그래밍에서 매우 일반적입니다. 이미지를 로딩하고 화면에 표시하는 방법에 대해 알아보겠습니다.
이미지 로딩
C++에서 이미지를 로딩하기 위해서는 적합한 라이브러리를 사용할 수 있습니다. 대표적으로 OpenCV와 SFML이 있습니다.
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++ 그래픽 프로그래밍에서 이미지를 로딩하고 표시하는 기본적인 방법을 살펴보았습니다.
참고문헌