Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][GD2] Kilka przezroczystych grafik
Forum PHP.pl > Forum > Przedszkole
Shlizer
Witam.
Mam pewien problem z biblioteką GD2 w PHP. Chcę wyświetlić kilka grafik z przezroczystością jako jeden rysunek, ale gdy obrazków jest więcej niż 2 przezroczystość znika i/lub którejś z grafik nie widać. Sprawę może komplikować fakt, że tło do tego generowanego obrazka jest wycinane z większej grafiki.
Może dla wyjaśnienia trochę kodu:
Kod
<?php
$MapaURL = '../mapy/tiles/'.$_GET['mapa'];
$Stan = $_GET['stan'];
$Nr = $_GET['nr'];
$Nr = $Nr+0;

$Szerokosc = 40;
$Wysokosc = 40;

// Twórz grafikę kafla
$Kafel = imagecreatetruecolor($Szerokosc, $Wysokosc);
imagealphablending($Kafel, false);
imagesavealpha($Kafel, true);

// Kopiuj grafikę mapy
$Mapa = imagecreatefrompng($MapaURL);

$PozX = ( ( $Nr % ( imagesx($Mapa) / $Szerokosc ) ) * $Szerokosc );
$PozY = ( (int)( $Nr / ( imagesx($Mapa) / $Szerokosc ) ) * $Wysokosc );

imagecopymerge($Kafel, $Mapa, 0, 0, $PozX, $PozY, $Szerokosc, $Wysokosc, 100);

// Wyświetlanie
header('Content-type: image/png');
imagepng($Kafel);

imagedestroy($Kafel);
imagedestroy($Mapa);
?>
Taki obrazek wyświetla się prawidłowo, jednak przy jakiejkolwiek próbie wgrania (imagecreatefrompng + imagecopy/imagecopymerge) innego pliku z ustawieniem na różne sposoby i w różnych miejscach, na różnych obrazkach kanału alfa zawsze jest pomijana przezroczystość i widoczna jest jedynie ostatnia grafika wklejona metodą imagecopymerge..
Kolejny problem to brak możliwości nałożenia wielu filtrów na obrazek z kilkoma (dwoma) rysunkami z kanałem alfa, ale wydaje mi się, że gdy pierwszy problem zostanie rozwiązany to i ten przestanie istnieć.

Czy wie ktoś może w czym leży problem?
wNogachSpisz
A probowales obrazek z 2 przezroczystymi grafikami zapisac, a potem na nowo otworzyc i dopiero wtedy nakladac 3 przezroczystosc?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.