2011-08-04 13 views
5

पर कब्जा स्क्रीनशॉट कैसे आकर्षित करें मेरे पास एक ओपनजीएल विंडो है, और एक wxwidget संवाद है। मैं ओपनजीएल को संवाद में दर्पण करना चाहता हूं। तो मैं क्या करने का इरादा है:glReadPixels से wxwidgets संवाद/पैनल

  1. कब्जा ओपन के स्क्रीनशॉट
  2. यह wxWidgets संवाद पर प्रदर्शन।

कोई विचार?

अपडेट: यह कैसे मैं वर्तमान में glReadPixels का उपयोग है (मैं भी अस्थायी रूप से BMP फ़ाइल को बचाने के लिए FreeImage उपयोग करें, लेकिन मैं वहाँ wxImage पर सीधे चैनल के लिए एक रास्ता है कि अगर फ़ाइल बचत निकाले जाने की अपेक्षा)

// Make the BYTE array, factor of 3 because it's RBG. 
BYTE* pixels = new BYTE[ 3 * width * height]; 

glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels); 

// Convert to FreeImage format & save to file 
FIBITMAP* image = FreeImage_ConvertFromRawBits(pixels, width, height, 3 * width, 24, 0x0000FF, 0xFF0000, 0x00FF00, false); 
FreeImage_Save(FIF_BMP, image, "C:/test.bmp", 0); 

// Free memory 
delete image; 
delete pixels; 
+1

आप कैसे बुला रहे हैं glReadPixels मदद करता है? आप wxImage बनाने के लिए लौटाए गए डेटा का उपयोग कर सकते हैं और इसे वहां से ले जा सकते हैं। – Bart

+0

@ बार्ट: मैंने कोड को शामिल करने के लिए पोस्ट को अपडेट किया है। मैं सराहना करता हूं अगर आप मुझे दिखाएंगे कि डेटा वापस आने से wxImage कैसे बनाया जाए। – huy

उत्तर

1
// Add Image Support for all types 
    wxInitAllImageHandlers(); 

    BYTE* pixels = new BYTE[ 3 * width * height]; 
    glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels); 

    // width height pixels alpha 
    wxImage img(with, height, pixels, NULL); // I am not sure if NULL is permitted on the alpha channel, but you can test that yourself :). 

// Second method: 
wxImage img(width, heiht, true); 
img.SetData(pixels); 

अब आप जो भी चाहें jpg png bmp के रूप में सहेजने के लिए छवि का उपयोग कर सकते हैं। केवल एक संवाद में प्रदर्शित करने के लिए, आपको इसे हार्डडिस्क में सहेजने की आवश्यकता नहीं है, लेकिन निश्चित रूप से, आप कर सकते हैं। बस ढेर पर छवि बनाएं। http://docs.wxwidgets.org/stable/wx_wximage.html#wximagector

आशा है कि यह

संबंधित मुद्दे