2011-10-11 15 views
7

Używam tego kodu do tworzenia obrazu z innego obrazu png, tło domyślnie jest czarne. Moje pytanie brzmi: jak ustawić przezroczyste tło?Obrazy w języku PHP z przezroczystym tłem

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

Czy istnieje prosty sposób na zrobienie tego? Dzięki

Odpowiedz

11

Ustawia przezroczysty kolor w danym obrazie .

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

Oto link

+1

Tak! To zadziałało: '$ black = imagecolorallocate ($ output, 0, 0, 0); imagecolortransparent ($ output, $ black); 'before the imagecopy – 2by

8

Ponieważ funkcja PHP imagecopymerge nie działa z kanałem Alpha, będziemy chcieli, aby korzystać z funkcji z pierwszym komentarzu na tej stronie imagecopymerge_alpha: http://php.net/manual/en/function.imagecopymerge.php

prostu obraz przejrzyste podstawy i połączyć go z obrazem, którego potrzebujesz.

Próbowałem go i działa dobrze dla mojego projektu.

+0

ten pracował dla mnie. – sinsuren

+0

Pracował również dla mnie. –

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

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

To jest nieprawidłowe, zgięcie powinno być ustawione na" fałsz " przed uruchomieniem 'imagesagealpha'. – Martin

Powiązane problemy