Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Сохранение OpenGL как рисунок


Автор: Malloc 13.12.2006, 09:40
Я использую OpenGL для вывода графики не на всем окне, а в части ее. Для этого применяю TGroupBox (Viewer), т.е. при инициализации OpenGL пишу не Хэндл окна, а Viewer'а.

Чтобы сохранить файл, я пишу:

Код

        Graphics::TBitmap *bm = new Graphics::TBitmap();

        bm->Height = Viewer->Height;
        bm->Width = Viewer->Width;

        BitBlt(bm->Canvas->Handle,0,0,Screen->Width,Screen->Height,GetDC(Viewer->Handle),0,0,SRCCOPY);

        bm->SaveToFile("123.bmp");

        TJPEGImage *jpg = new TJPEGImage();
        jpg->Assign(bm);
        jpg->SaveToFile("123.jpg");

        delete jpg;
        delete bm;


Все получается, файлы создаются и успешно. Но если часть Viewer'а заходит за низ экрана, например, то в файлах сохраняется еще и панель задач. 

Какая еще существует альтернатива этому способу?
  


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)