2013-11-23 2 views
5

В основном я учу себя C++, а часть функции программы - открывать и закрывать указанное изображение. Как мне это сделать? Или какой ресурс я бы использовал?Открытие и отображение изображения на C++?

Спасибо!

+1

Самый простой способ - использовать некоторые как Qt, которая уже имеет все необходимые библиотеки для работы с изображениями. – cen

ответ

7

В C++ (без дополнительной библиотеки) вы можете открыть изображение. Но не будет ничего полезного, кроме кучи двоичных данных. то вы должны использовать свой собственный декодер. Если вы используете opencv вы можете написать, чтобы открыть изображение и отобразить его:

Mat m("fileName"); 
imshow("windowName",m); 

Чтобы сделать то же самое с общей библиотекой perpouse как Qt вы можете использовать этот код:

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    QGraphicsScene scene; 
    QGraphicsView view(&scene); 
    QGraphicsPixmapItem item(QPixmap("c:\\test.png")); 
    scene.addItem(&item); 
    view.show(); 
    return a.exec(); 
} 

Чтобы узнать больше о imageviewer виджет go here. Или вы можете посмотреть на here для отображения в виде графического представления.

2

Для кроссплатформенности, с открытым исходным кодом и очень хорошей библиотеки вы можете использовать libmagick ++.

-2

модифицирована Hello World образец из OpenCV 2 Computer Vision Application Programming Cookbook работает в VS 2012 win32 Консоль приложения

или official OpenCV (Open Source) sample

предупреждение: OpenCV-2.4.10.exe Win инсталлятор 360 MB, которые имеют много особенностей заранее и имеют пример кода, Doc и встроенные двоичные файлы в Python и Java тоже x86 и 64 в нем тоже

#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp>  

int main() 
{   
    // read an image 
    cv::Mat image= cv::imread("img.jpg"); 
    // create image window named "My Image" 
    cv::namedWindow("My Image"); 
    // show the image on window 
    cv::imshow("My Image", image); 
    // wait key for 5000 ms 
    cv::waitKey(5000); 

    return 0; 
} 
Смежные вопросы