मुझे समझ नहीं आ रहा है कि QImage और QPixmap में क्या अंतर है, वे समान कार्यक्षमता प्रदान करते हैं। मुझे QImage का उपयोग कब करना चाहिए और मुझे QPixmap का उपयोग कब करना चाहिए?
मुझे समझ नहीं आ रहा है कि QImage और QPixmap में क्या अंतर है, वे समान कार्यक्षमता प्रदान करते हैं। मुझे QImage का उपयोग कब करना चाहिए और मुझे QPixmap का उपयोग कब करना चाहिए?
जवाबों:
Easilly पर डॉक्स को पढ़ कर दिए QImage और QPixmap :
QPixmap वर्ग एक है ऑफ स्क्रीन छवि प्रतिनिधित्व कि एक पेंट उपकरण के रूप में इस्तेमाल किया जा सकता।
QImage वर्ग एक हार्डवेयर स्वतंत्र छवि प्रतिनिधित्व कि पिक्सेल डेटा के लिए सीधी पहुँच की अनुमति देता है, और एक रंग उपकरण के रूप में इस्तेमाल किया जा सकता प्रदान करता है।
संपादित करें: इसके अलावा, @ डेव के उत्तर से:
आप GUI- थ्रेड के बाहर एक QPixmap में हेरफेर नहीं कर सकते, लेकिन QImage में ऐसा कोई प्रतिबंध नहीं है।
और @Annold से:
यहाँ एक छोटा सारांश है जो आमतौर पर (हमेशा नहीं) लागू होता है:
- यदि आप एक छवि में हेरफेर करने की योजना बनाते हैं, तो इसे संशोधित करें, इस पर पिक्सल बदलें, आदि, एक क्यूमैज का उपयोग करें।
- यदि आप स्क्रीन पर एक से अधिक बार एक ही छवि बनाने की योजना बनाते हैं, तो इसे QPixmap में परिवर्तित करें।
क्यूटी लैब्स पर लेखों की एक अच्छी श्रृंखला है जो क्यूटी ग्राफिक्स सिस्टम के बारे में बहुत कुछ बताती है। इस लेख में विशेष रूप से QImage
बनाम पर एक खंड है QPixmap
।
यहाँ एक छोटा सारांश है जो आमतौर पर (हमेशा नहीं) लागू होता है:
QImage
।QPixmap
।औद्योगिक वातावरण में महत्वपूर्ण:
QPixmap प्रदर्शन करने वाले वीडियो कार्ड पर संग्रहीत है। QImage नहीं।
इसलिए यदि आपके पास एक सर्वर है जो एप्लिकेशन चला रहा है, और एक क्लाइंट स्टेशन जो प्रदर्शन कर रहा है, तो यह नेटवर्क उपयोग की अवधि में बहुत महत्वपूर्ण है।
Pixmap के साथ, एक Redraw में नेटवर्क पर केवल redraw (कुछ बाइट्स) के लिए ऑर्डर भेजने में शामिल होता है।
QImage के साथ, यह पूरी छवि (कुछ एमबी के आसपास) भेजने में शामिल है।
QPixmap
एक "छवि वस्तु" है जिसका pixel
प्रतिनिधित्व आपके कोड में कोई परिणाम नहीं है, इस प्रकार QPixmap को प्रदर्शन स्क्रीन पर चित्र प्रदान करने के लिए डिज़ाइन और अनुकूलित किया गया है , यह X11 का उपयोग करते समय XServer पर संग्रहीत किया जाता है, इस प्रकार XWindow पर QPixmap को खींचना ड्राइंग की तुलना में बहुत तेज़ है। QImages, जैसा कि डेटा पहले से ही सर्वर पर है, और उपयोग करने के लिए तैयार है।
QPixmap का उपयोग कब करें : यदि आप किसी मौजूदा छवि (आइकन .. पृष्ठभूमि .. आदि) को विशेष रूप से बार-बार खींचना चाहते हैं, तो Qixixmap का उपयोग करें।
QImage क्लाइंट कोड की "मेमोरी में पिक्सेल की एक सरणी" है , QImage को I / O के लिए डिज़ाइन किया गया है और प्रत्यक्ष पिक्सेल एक्सेस और हेरफेर के लिए अनुकूलित किया गया है।
QImage का उपयोग कब करें : यदि आप Qpaint के साथ ड्रा करना चाहते हैं, या एक छवि पिक्सेल में हेरफेर करते हैं।
QBitmap केवल एक सुविधाजनक QPixmap उपवर्ग है जो 1 की गहराई सुनिश्चित करता है, इसकी मोनोक्रोम (1-बिट गहराई) Pixmap है। QPixmap की तरह, QBitmap अंतर्निहित डेटा साझाकरण के उपयोग के लिए अनुकूलित है।