2011-10-11 16 views
7

मैं इस कोड का उपयोग किसी अन्य पीएनजी छवि से एक छवि बनाने के लिए करता हूं, पृष्ठभूमि डिफ़ॉल्ट रूप से काला होती है। मेरा सवाल यह है कि एक पारदर्शी पृष्ठभूमि कैसे सेट करें?पारदर्शी पृष्ठभूमि के साथ PHP छविकॉपी

$input = imagecreatefrompng('image.png'); 
$output = imagecreatetruecolor(50, 50); 

imagecopy($output, $input, 4,0, 8,8, 8,8); 
imagecopy... etc. 

header('Content-Type: image/png'); 
imagepng($output); 

क्या ऐसा करने का कोई आसान तरीका है? धन्यवाद

उत्तर

11

दिए गए छवि में पारदर्शी रंग सेट करता है।

int imagecolortransparent (resource $image [, int $color ]) 

यहाँ link

+1

हां! यह काम किया: '$ काला = imagecolorallocate ($ आउटपुट, 0, 0, 0); imagecolortransparent ($ output, $ black); 'imagecopy – 2by

8

पीएचपी समारोह imagecopymerge अल्फा चैनल के साथ काम नहीं करता है, तो आप इस पेज imagecopymerge_alpha पर पहली टिप्पणी से समारोह का उपयोग करना चाहेंगे के बाद से: http://php.net/manual/en/function.imagecopymerge.php

बस आधार के रूप में पारदर्शी छवि है और आपको जिस छवि की आवश्यकता है उसके साथ इसे एक साथ मिलाएं।

मैंने इसे आजमाया है और यह मेरी परियोजना के लिए ठीक काम करता है।

+0

यह मेरे लिए काम किया है। – sinsuren

+0

मेरे लिए भी काम किया। –

0

या propably

int imagesavealpha($img,true); 

http://www.php.net/manual/en/function.imagesavealpha.php

+0

छवियों से पहले इमेजवेल्फा बस सेट करता है अगर इमेजेडाटा (फ़ाइल या बफर में) लिखते समय अल्फा चैनल जानकारी सहेजी जानी चाहिए – griffin

2
imagealphablending($input, true); 
imagesavealpha($input, true); 

imagealphablending($output, true); 
imagesavealpha($output, true); 
+4

यह गलत है, झुकने को' झूठी 'पर सेट किया जाना चाहिए 'imagesagealpha 'चलाने से पहले। – Martin

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