Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
PNG/Alpha/GD - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Początkujący webmaster (https://www.webmastertalk.pl/forum-poczatkujacy-webmaster)
+--- Wątek: PNG/Alpha/GD (/thread-png-alpha-gd)



PNG/Alpha/GD - Radian - 15-12-2009

Za pomocą biblioteki GD, zmniejszam wielkość obrazków uploadując je na serwer.
Gdy użytkownik uploaduje png, kanał alpha zmienia się w kolor czarny, nie mogę tego naprawić!
Szukałem na forach itd. lecz nic nie pomaga Sad


RE: PNG/Alpha/GD - dziamber - 15-12-2009

Masz na myśli zmniejszanie rozmiarów (wysokość i szerokość) czy i wielkość np. w bajtach lub megabajtach?


RE: PNG/Alpha/GD - Radian - 15-12-2009

wysokość i szerokość


RE: PNG/Alpha/GD - BeamBear - 16-12-2009




RE: PNG/Alpha/GD - Radian - 18-12-2009

Jeśli masz pewność, że to zadziała, to wezmę się znowu za to i będę próbował, jednak martwi mnie fakt, że już to wykonywałem. Gdyby coś nie działało, przekleję tutaj swój kod z nadzieją że koledzy pomogą Smile


RE: PNG/Alpha/GD - BeamBear - 18-12-2009

logika takiego skryptu jest stosunkowo prosta:
- ustalasz sobie wymiary pomniejszonego obrazka
- pobierasz obrazek i jego wymiary
- tworzysz nowy obrazek z użyciem wcześniej ustalonych wymiarów pomniejszenia (imagecreatetruecolor)
- stosujesz obie funkcje, które Ci podałem
- imagecopyresampled i hajda headerem do przeglądarki Smile


RE: PNG/Alpha/GD - Radian - 19-12-2009

Problem rozwiązany, podaję gotowca poniżej:

if($rozszerzenie == 'png' ){

imagealphablending($img_mini, false);

imagesavealpha($img_mini, true);

$transparent = imagecolorallocatealpha($img_mini, 255, 255, 255, 127);

imagefilledrectangle($img_mini, 0, 0, $width_mini, $height_mini, $transparent);

imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);

imagepng($img_mini, 'img/forum_avatar/'.$nazwa.'.'.$rozszerzenie.'');

}