2011-10-11 2 views
7

Io uso questo codice per creare un'immagine da un'altra immagine png, lo sfondo è nero per impostazione predefinita. La mia domanda è come impostare uno sfondo trasparente?imagecopy PHP con sfondo trasparente

$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); 

C'è un modo semplice per farlo? Grazie

risposta

11

Imposta il colore trasparente nell'immagine .

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

Ecco il link

+1

Sì! Questo ha funzionato: '$ black = imagecolorallocate ($ output, 0, 0, 0); imagecolortransparent ($ output, $ black); 'before the imagecopy – 2by

8

Dal momento che la funzione PHP imagecopymerge non funziona con il canale alfa, ti consigliamo di utilizzare la funzione dal primo commento su questa pagina imagecopymerge_alpha: http://php.net/manual/en/function.imagecopymerge.php

Basta avere l'immagine trasparente come base e uniscilo insieme con l'immagine che ti serve.

L'ho provato e funziona perfettamente per un mio progetto.

+0

questo ha funzionato per me. – sinsuren

+0

Ha funzionato anche per me. –

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

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

Questo non è corretto, la piegatura deve essere impostata su' false' prima di eseguire 'imagesagealpha'. – Martin