का उपयोग करके जेपीजी पर ओवरले पीएनजी मेरे पिछले कुछ घंटों में जेपीजी पृष्ठभूमि के शीर्ष पर एक पारदर्शी पृष्ठभूमि के साथ पीएनजी लोगो प्राप्त करने का प्रयास किया गया है। मैंने कई तरीकों से और कई ग्लोबल्स के साथ भी कोशिश की है, लेकिन मुझे लगता है कि परिणाम प्राप्त करने में सक्षम नहीं है।इमेजिक
"सबसे पहले प्रयास":
$overlay = new Imagick('overlay.png');
$image = new Imagick('background.jpg');
$image->compositeImage($overlay, Imagick::COMPOSITE_DEFAULT, 10, 10);
$image->writeImage('background.jpg'); //replace original background
$overlay->destroy();
$image->destroy();
आप देख सकते हैं, जगुआर लोगो सब काला है।
"दूसरा प्रयास"
$overlay = new Imagick('overlay.png');
$image = new Imagick('background.jpg');
$image->setImageColorspace($overlay->getImageColorspace());
$image->compositeImage($overlay, Imagick::COMPOSITE_DEFAULT, 10, 10);
$image->writeImage('background.jpg'); //replace original background
$overlay->destroy();
$image->destroy();
यह एक जगुआर लोगो की तरह यह होना चाहिए है, लेकिन पृष्ठभूमि सब अब में गड़बड़ है।
मैं Imagick::setImageMatte साथ की कोशिश की और overlay to a white background जोड़ने की कोशिश की है (सोचा था कि मैं एक पारदर्शी पृष्ठभूमि की आवश्यकता है) और अभी भी इसे ठीक तरह से छवि प्रदर्शित नहीं करेगा। मैंने उपर्युक्त स्निपेट के कई अन्य बदलावों की कोशिश की है, लेकिन वे सभी पीएनजी को पूरी तरह से या आंशिक काला बनाने लगते हैं।
मुझे क्या याद आ रही है या गलत कर रहा है? क्या कोई मुझे सही दिशा में एक झुकाव दे सकता है? कृपया ध्यान दें कि इसे PHP में करने की आवश्यकता है।
बहुत बहुत धन्यवाद!