Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]skalowanie .png - czarne tło
Forum PHP.pl > Forum > Przedszkole
gitbejbe
Witam.

Przy skalowaniu obrazka w formacie .png znika kanał przezroczystości. Jeśli chodzi o sam efekt przezroczystości to nie jest mi on potrzebny. Zamiast niego
może być kolor biały, no ale nie czarny ....

Pierwszy raz się bawie w takie rzeczy, prosze o wyrozumiałość...

  1. $i = explode('.', $plik_nazwa);
  2. $rozszerzenie = end($i);
  3.  
  4. if($width > $max_width)
  5. {
  6. $new_width = 580;
  7. $new_height = round($height * $max_width/$width);
  8. $image_p = imagecreatetruecolor($new_width, $new_height);
  9. switch($rozszerzenie)
  10. {
  11. case 'jpg':
  12. $image = imagecreatefromjpeg($filename);
  13. break;
  14. case 'gif':
  15. $image = imagecreatefromgif($filename);
  16. break;
  17. case 'png':
  18. $image = imagecreatefrompng($filename);
  19. break;
  20. }
  21. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  22. imagejpeg($image_p,'files/'.$plik_nazwa, 90);
  23.  
  24. }
b4rt3kk
Tak więc ustaw czarny jako przezroczysty.

  1. $black = imagecolorallocate($image_p, 0, 0, 0);
  2. imagecolortransparent($image_p, $black);
gitbejbe
sprawdziłem Twój kod i niestety nie zadziałał... Ale naprowadził mnie za to na właściwy trop i znalazłem inne rozwiązanie : )

  1. $image_p = imagecreatetruecolor($new_width, $new_height);
  2. $bialy = imagecolorallocate($image_p, 255, 255, 255);
  3. imagefill($image_p, 0, 0, $bialy);


teraz każde png ma białe tło : ) dzięki : )

MAm jeszcze jedno pytanie... chiiałem teraz przeskalować plik gif, lecz traci on onimacje. jest wyświetlony pierwszy slajd i to tylko tyle. Są jakies magiczne biblioteki w GD, które mogłyby pomoc ? albo jakiś inny myk ?

a i wyszlo jeszcze jedno.... nazwy zmiennyh - czyli dane pliku wyświetlane są dobrze, lecz przy skalowaniu zdjecia i jego zapisie, polskie znaki zamieniaja sie w krzaki... wnioskuje że gdzieś trzeba ustawić kodowanie zapisu, tylko gdzie ? pliki ze skryptem sa zapisane w UTF-8 bez bom.
CuteOne
zamiast copyresampled użyj imagecopy()
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.