<?php function skaluj($adres, $szerokosc) { // funkcja obsługuje również adresy internetowe jak http i ftp $src = @imagecreatefromstring($pobierz); imagealphablending($src, true); imagesavealpha($src, true); if (!$pobierz or !$src ) return false; $pic_width = imagesx($src); $pic_height = imagesy($src); if (($szerokosc == $pic_width) or ($szerokosc == null)) return $src; $mini_width = $szerokosc; $mini = imagecreatetruecolor($mini_width, $mini_height); imagecopyresampled($mini, $src, 0, 0, 0, 0, $mini_width, $mini_height, $pic_width, $pic_height); return $mini; } $obrazek = skaluj('stamp.png', 126); // druga wartość to szerokość w px imagepng($obrazek); // wyświetlenie obrazka przez którąś z funkcji np: imagepng, imgejpeg itd ?>
No i mam obrazek o wymiarach 128*128 png z fragmentami przezroczystymi:

No i go skaluje zamiast zachować przezroczystość, zmienia ją na czarny kolor:

Jak temu zaradzić?
Czy w ogóle da się to naprawić?
edit: Czy te funkcję (
imagealphablending($src, true);
imagesavealpha($src, true);
} Coś pomagają?
Problem rozwiązany. Zamiast funkcji ImageCreateTrueColor użyłem funkcji ImageCreate