Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]skalowanie .png - czarne tło
gitbejbe
post
Post #1





Grupa: Zarejestrowani
Postów: 516
Pomógł: 63
Dołączył: 27.08.2012

Ostrzeżenie: (0%)
-----


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. }


Ten post edytował gitbejbe 21.11.2012, 12:08:13
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Tak więc ustaw czarny jako przezroczysty.

  1. $black = imagecolorallocate($image_p, 0, 0, 0);
  2. imagecolortransparent($image_p, $black);


Ten post edytował b4rt3kk 21.11.2012, 12:16:16
Go to the top of the page
+Quote Post
gitbejbe
post
Post #3





Grupa: Zarejestrowani
Postów: 516
Pomógł: 63
Dołączył: 27.08.2012

Ostrzeżenie: (0%)
-----


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.

Ten post edytował gitbejbe 21.11.2012, 12:42:25
Go to the top of the page
+Quote Post
CuteOne
post
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


zamiast copyresampled użyj imagecopy()
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.12.2025 - 06:07