[PHP] PNG 32bit i zmienna wielkośc obrazka

0

Witam, mam problem, gdyż potrzebuję zrobić obrazek z kanałem alpha, jednak musi on mieć zmienną długość, zależną od napisu. tło tworzą ułożone obok siebie 'kafelki' stworazone z innego obrazka, który ma przezroczystość. Niestety, przy użyciu imagecopy() kanał alpha się nie kopiuje. Rozwiązaniem byłoby też stworzenie czystego obrazka z kanałem alpha o nadmiarowej długości, potem rysowanie tła na nim i wreszcie skrócenie go do odpowiedniej długości. Nie znalazłem jednak funkcji do zmiany rozmiaru już stworzonego obrazka... Nie widzę też nigdzie, by można było załadować sam kanał alpha z jakiegoś źródła, a to także by było jakieś rozwiązanie. Więc teraz pytanie: czy da się to jakoś w ogóle rozwiązać? Najlepiej bez zabawy z pojedynczymi pikselami :P

0

nie za bardzo rozumiem, czy obrazek tworzysz przez imagecreatetruecolor ? zdaje się że imagecopymerge służące do skopiowania ze zmienionym rozmiarem potrafi też skopiować kanały alpha ale głowy nie dam a tylko gdzieś się przypadkiem z takim zdaniem zetknąłem

// akurat dzisiaj musiałem też się pobawić w te rzeczy i "niestety" SOA#1 - nie mam żadnego problemu przy kopiowaniu z jednego obrazka na drugi

0

Jeśli obrazek PNG ma posiadać kanał alfa to należy wyłączyć w nim alphablending zaraz po stworzeniu:
imagealphablending($im, false);
i włączyć zapisywanie kanału alfa:
imagesavealpha($im, true);

Wg. dokumentacji PHP tylko imagecopymerge obsługuje przeźroczystość.

0
suda napisał(a)

Wg. dokumentacji PHP tylko imagecopymerge obsługuje przeźroczystość.

ale w praktyce imagecopy u mnie również (PHP 5.1.3)

1 użytkowników online, w tym zalogowanych: 0, gości: 1