2014-07-03 7 views
6

पर मिलाएं मुझे पाइथन पीआईएल लाइब्रेरी का उपयोग करके किसी अन्य छवि पर एक छवि को मिश्रित करने की आवश्यकता है।पायथन पीआईएल: पारदर्शी छवि को

नीचे चित्र में देख सकते हैं, मेरे दो स्रोत छवियों ए और बी हैं जब मैं कार्य करें:

imageA.paste(imageB, (0, 0), imageB) 

मैं एक परिणाम के रूप सी मिलता है, लेकिन ग्रे के शीर्ष पर हिस्सा पृष्ठभूमि अब पारदर्शी है। छवि डी वह है जो मुझे फ़ोटोशॉप में बी ओवर ए डालता है और मुझे पीआईएल के साथ हासिल करने की आवश्यकता होती है।

मैं क्या गलत कर रहा हूं? मैं सी के बजाय डी प्राप्त करने के लिए पीआईएल में बी ओवर ए कैसे बना सकता हूं?

Example Image

+0

क्या के साथ होता है: 'imageA.paste (imageB, (0, 0), मुखौटा = imageB)' – RickyA

+0

@RickyA कि ठीक वही होना चाहिए: तीसरा तर्क 'पेस्ट' * मास्क है। 'ImageA' का उपयोग मास्क के रूप में करने का प्रयास करें:' imageA.paste (imageB, (0, 0), imageA) ' – Germano

+0

@Germano: यह या तो काम नहीं करता है, छवि बी में एक ड्रॉप छाया है जिसे मैं काट दूंगा वो करें। – Daniela

उत्तर

0

मैं अब (प्रतिनिधि बाधा) के लिए टिप्पणी नहीं कर सकता।

लेकिन मुझे लगता है कि क्या तुम सच में की जरूरत है, अपनी जरूरत के अनुसार, बजाय यह करने के लिए है:

imageB.paste(imageA, (0, 0), imageA) 

असल में, वह यह है कि, बी वांछित परिणाम पाने के पृष्ठभूमि छवि बनाने के लिए, क्योंकि वो क्या है मैं डी

संपादित में देखें: भर में और अधिक खोज रहे हैं, मैंने पाया इस: https://stackoverflow.com/a/15919897/4029893

मुझे लगता है कि आप निश्चित रूप से alpha_composite विधि का उपयोग करना चाहिए, के बाद से पेस्ट wor नहीं है के रूप में पृष्ठभूमि छवियों के लिए पारदर्शिता के साथ उम्मीद की। पारदर्शिता के लिए

0

उपयोग RGBA मुखौटा

imageA.paste(imageB, (0, 0), imageB.convert('RGBA')) 
संबंधित मुद्दे