Pygame 1.9 - PixelArray

pygame.PixelArray




pygame

pygame.PixelArray

सतहों के प्रत्यक्ष पिक्सेल पहुंच के लिए pygame ऑब्जेक्ट
PixelArray(Surface) -> PixelArray

PixelArray एक सरफेस को लपेटता है और सतह के पिक्सल तक सीधी पहुँच प्रदान करता है। एक पिक्सेल सरणी एक या दो आयामी हो सकती है। इसकी सतह की तरह एक दो आयामी सरणी, अनुक्रमित है [स्तंभ, पंक्ति]। पिक्सेल सरणियाँ स्लाइसिंग का समर्थन करती हैं, दोनों एक सबर्रे वापस करने या असाइनमेंट के लिए। एक एकल स्तंभ या पंक्ति पर कटा हुआ पिक्सेल सरणी एक आयामी पिक्सेल सरणी देता है। अंकगणित और अन्य संचालन समर्थित नहीं हैं। एक पिक्सेल सरणी को सुरक्षित रूप से खुद को सौंपा जा सकता है। अंत में, पिक्सेल सरणियाँ एक सरणी संरचना इंटरफ़ेस निर्यात करती हैं, जिससे उन्हें pygame.pixelcopy विधियों और NumPy सरणियों के साथ सहभागिता करने की अनुमति मिलती है।

PixelArray पिक्सेल आइटम को एक पूर्णांक मान, pygame.Color उदाहरण, या (r, g, b [, a]) tuple निर्दिष्ट किया जा सकता है।

pxarray[x, y] = 0xFF00FF
pxarray[x, y] = pygame.Color(255, 0, 255)
pxarray[x, y] = (255, 0, 255)

हालाँकि, केवल एक पिक्सेल का पूर्णांक मान लौटाया जाता है। इसलिए, किसी पिक्सेल को किसी विशेष रंग से तुलना करने के लिए पहले सतह के भूतल ऑब्जेक्ट के लिए Surface.map_rgb() विधि का उपयोग करके रंग की आवश्यकता होती है, जिसके लिए PixelArray बनाया गया था।

pxarray = pygame.PixelArray(surface)
# Check, if the first pixel at the topleft corner is blue
if pxarray[0, 0] == surface.map_rgb((0, 0, 255)):
    ...

जब पिक्सेल की एक सीमा के लिए असाइन किया जाता है, तो रंग या PixelArray के एक गैर टपल अनुक्रम को मूल्य के रूप में इस्तेमाल किया जा सकता है। एक अनुक्रम के लिए, लंबाई PixelArray चौड़ाई से मेल खाना चाहिए।

pxarray[a:b] = 0xFF00FF                   # set all pixels to 0xFF00FF
pxarray[a:b] = (0xFF00FF, 0xAACCEE, ... ) # first pixel = 0xFF00FF,
                                          # second pixel  = 0xAACCEE, ...
pxarray[a:b] = [(255, 0, 255), (170, 204, 238), ...] # same as above
pxarray[a:b] = [(255, 0, 255), 0xAACCEE, ...]        # same as above
pxarray[a:b] = otherarray[x:y]            # slice sizes must match

PixelArray असाइनमेंट के लिए, यदि दाहिने हाथ की ओर की सरणी में पंक्ति की लंबाई 1 है, तो स्तंभ को लक्ष्य सरणी की पंक्तियों पर प्रसारित किया जाता है। ऊंचाई 1 की एक सरणी को लक्ष्य के स्तंभों पर प्रसारित किया जाता है, और 1D PixelArray असाइन करने के बराबर है।

सब्सक्राइब स्लाइस का उपयोग लक्ष्य PixelArray के आयताकार सबव्यू को असाइन करने के लिए भी किया जा सकता है।

# Create some new PixelArray objects providing a different view
# of the original array/surface.
newarray = pxarray[2:4, 3:5]
otherarray = pxarray[::2, ::2]

सब्स्क्रिप्‍ट स्लाइस का उपयोग x या y अक्ष पर चलने के बजाय तेजी से आयताकार पिक्सेल जोड़तोड़ करने के लिए भी किया जा सकता है।

pxarray[::2, :] = (0, 0, 0)               # Make even columns black.
pxarray[::2] = (0, 0, 0)                  # Same as [::2, :]

अपने जीवनकाल के दौरान, PixelArray सतह को बंद कर देता है, इस प्रकार आपको स्पष्ट रूप से बंद करना पड़ता है () एक बार इसका उपयोग नहीं किया जाता है और सतह को उसी दायरे में संचालन करना चाहिए। PixelArray (सर्फ) के साथ Pix_Aray: शैली के साथ एक संदर्भ प्रबंधक के रूप में इसका उपयोग करना सबसे अच्छा है। तो यह pypy पर भी काम करता है।

एक सरल : कॉलम के लिए स्लाइस इंडेक्स को छोड़ा जा सकता है।

pxarray[::2, ...] = (0, 0, 0)             # Same as pxarray[::2, :]
pxarray[...] = (255, 0, 0)                # Same as pxarray[:]

PixelArray के बारे में एक नोट PixelArray असाइनमेंट के लिए, 3 के आइटम आकार के साथ सरणियों के लिए (24 बिट सतहों से बनाया गया) पिक्सेल मान स्रोत से गंतव्य प्रारूप में अनुवादित किए जाते हैं। लक्ष्य पिक्सेल के प्रारूप से मेल खाने के लिए प्रत्येक पिक्सेल के लाल, हरे और नीले रंग के तत्वों को स्थानांतरित किया जाता है। अन्य सभी पिक्सेल आकारों के लिए ऐसा कोई रीमैपिंग नहीं होता है। यह बाद में pygame रिलीज में बदलना चाहिए, जहां सभी पिक्सेल आकारों के लिए प्रारूप रूपांतरण किए जाते हैं। कोड मैपिंग से बचने के लिए जब पूर्ण मैप की गई कॉपी को लागू किया जाता है, तो यह सुझाव दिया जाता है कि PixelArray से PixelArray प्रतियां समान प्रारूप की सतहों के बीच हों।

Pygame में नया 1.9.1

  • बंद () विधि जोड़ा गया था। स्पष्ट रूप से सफाई के लिए।
  • सफाई के लिए एक संदर्भ प्रबंधक के रूप में PixelArray का उपयोग करने में सक्षम होने के नाते।
  • संदर्भ गिनती (pypy) के बिना काम करते समय ये दोनों उपयोगी होते हैं।

Pygame 1.9.2 में नया

  • सरणी संरचना इंटरफ़ेस
  • स्थानान्तरण विधि
  • एक लंबाई 1 आयाम के लिए प्रसारण

Pygame में बदला 1.9.2

  • एक 2D PixelArray की लंबाई 1 आयाम हो सकती है। 2 डी PixelArray पर केवल एक पूर्णांक सूचकांक 1D सरणी देता है।
  • असाइनमेंट के लिए, एक टपल केवल एक रंग हो सकता है। कोई अन्य अनुक्रम प्रकार रंगों का एक अनुक्रम है।

surface -> Surface

भूतल PixelArray का उपयोग करता है।

भूतल PixelArray के लिए बनाया गया था।

itemsize -> int

पिक्सेल सरणी आइटम का बाइट आकार लौटाता है

यह पिक्सेल सरणी की सतह के लिए Surface.get_bytesize() के समान है।

Pygame 1.9.2 में नया

ndim -> int

आयामों की संख्या लौटाता है।

एक पिक्सेल सरणी 1 या 2 आयामी हो सकती है।

Pygame 1.9.2 में नया

shape -> tuple of int's

सरणी आकार देता है।

एक टपल या लंबाई ndim जो प्रत्येक आयाम की लंबाई देता है। Surface.get_size() अनुरूप Surface.get_size()

Pygame 1.9.2 में नया

strides -> tuple of int's

प्रत्येक सरणी आयाम के लिए बाइट ऑफ़सेट लौटाता है।

एक टपल या लंबाई ndim बाइट मायने रखता है। जब एक स्ट्राइड को संबंधित इंडेक्स से गुणा किया जाता है तो यह एरे की शुरुआत से उस इंडेक्स की भरपाई करता है। एक स्ट्राइड एक सरणी के लिए नकारात्मक है जो उलटा है (एक नकारात्मक कदम है)।

Pygame 1.9.2 में नया

make_surface() -> Surface

वर्तमान PixelArray से एक नया सरफेस बनाता है।

वर्तमान PixelArray से एक नया सरफेस बनाता है। मौजूदा PixelArray के आधार पर आकार, पिक्सेल ऑर्डर आदि मूल सतह से अलग होंगे।

# Create a new surface flipped around the vertical axis.
sf = pxarray[:,::-1].make_surface ()

Pygame 1.8.1 में नया।

replace(color, repcolor, distance=0, weights=(0.299, 0.587, 0.114)) -> None

एक और एक के साथ PixelArray में पारित रंग की जगह।

PixelArray में उत्तीर्ण रंग के साथ पिक्सेल को बदलकर उन्हें बदल दिए गए प्रतिस्थापन रंग में बदल दिया जाता है।

यह रंगों के बीच की दूरी की गणना करने के लिए एक सरल भारित यूक्लिडियन फार्मूला का उपयोग करता है। दूरी का स्थान 0.0 से 1.0 तक होता है और इसका उपयोग रंग पहचान के लिए सीमा के रूप में किया जाता है। यह एक समान के साथ पिक्सेल लेने के लिए प्रतिस्थापन का कारण बनता है, लेकिन बिल्कुल समान रंग नहीं, खाते में भी।

यह एक ऐसी जगह ऑपरेशन है जो सीधे PixelArray के पिक्सेल को प्रभावित करता है।

Pygame 1.8.1 में नया।

extract(color, distance=0, weights=(0.299, 0.587, 0.114)) -> PixelArray

PixelArray से पारित रंग निकालता है।

सभी मिलान पिक्सेल को सफेद में बदलकर पारित रंग निकालता है, जबकि गैर-मिलान वाले पिक्सेल को काले रंग में बदल दिया जाता है। यह ब्लैक / व्हाइट कलर मास्क के साथ एक नया PixelArray देता है।

यह रंगों के बीच की दूरी की गणना करने के लिए एक सरल भारित यूक्लिडियन फार्मूला का उपयोग करता है। दूरी का स्थान 0.0 से 1.0 तक होता है और इसका उपयोग रंग पहचान के लिए सीमा के रूप में किया जाता है। यह एक समान के साथ पिक्सेल लेने के लिए निष्कर्षण का कारण बनता है, लेकिन बिल्कुल समान रंग नहीं, खाते में भी।

Pygame 1.8.1 में नया।

compare(array, distance=0, weights=(0.299, 0.587, 0.114)) -> PixelArray

PixelArray की तुलना दूसरे के साथ करता है।

PixelArray की सामग्री की तुलना PixelArray के पास के लोगों से करता है। यह एक काले / सफेद रंग के मास्क के साथ एक नया PixelArray देता है जो दोनों सरणियों के अंतर (सफेद) को इंगित करता है। दोनों PixelArray वस्तुओं में समान बिट गहराई और आयाम होने चाहिए।

यह रंगों के बीच की दूरी की गणना करने के लिए एक सरल भारित यूक्लिडियन फार्मूला का उपयोग करता है। दूरी का स्थान 0.0 से 1.0 तक होता है और इसका उपयोग रंग पहचान के लिए सीमा के रूप में किया जाता है। यह पिक्सेल को समान के साथ चिह्नित करने का कारण बनता है, लेकिन बिल्कुल समान रंग नहीं, जैसा कि काला है।

Pygame 1.8.1 में नया।

transpose() -> PixelArray

एक्स और वाई अक्ष का आदान-प्रदान करता है।

यह विधि पिक्सेल सरणी का नया दृश्य पंक्तियों और स्तंभों की अदला-बदली के साथ देती है। तो एक (डब्ल्यू, एच) के आकार के सरणी ए (एच, डब्ल्यू) टुकड़ा वापस आ गया है। यदि एक सरणी एक आयामी है, तो एक लंबाई 1 x आयाम जोड़ा जाता है, जिसके परिणामस्वरूप एक 2 डी पिक्सेल सरणी होती है।

Pygame 1.9.2 में नया

transpose() -> PixelArray

PixelArray को बंद करता है, और सरफेस लॉक जारी करता है।

यह विधि PixelArray को स्पष्ट रूप से बंद करने के लिए है, और सूफ़ेस पर एक लॉक जारी करने के लिए है।

Pygame में नया 1.9.1