Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pomniejszanie przeźroczystych obrazków
Forum PHP.pl > Forum > Przedszkole
row
Witam,

Skrypt tworzy miniatury z duży obrazków, ale jeśli są to obrazki, z przeźroczystością to robi się czarne tło.

  1. $img = imagecreatefromunknown($imagePath);
  2.  
  3. $mainWidth = imagesx($img);
  4. $mainHeight = imagesy($img);
  5.  
  6. if (($mainWidth > 50) && ($mainWidth < 4000) && ($mainHeight < 3500))
  7. {
  8.  
  9. $a = ($mainWidth >= $mainHeight) ? $mainWidth : $mainHeight;
  10.  
  11. $div = $a / 150;
  12. $thumbWidth = intval($mainWidth / $div);
  13. $thumbHeight = intval($mainHeight / $div);
  14.  
  15.  
  16. $myThumb = imagecreatetruecolor($thumbWidth, $thumbHeight);
  17. imagecopyresampled($myThumb, $img, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $mainWidth, $mainHeight);
  18. $thumbPath = "thumb/" . basename($imagePath);
  19. imagejpeg($myThumb, $thumbPath);


jak można zrobić, aby pomniejszało bez tego tła ?

Dzięki
wookieb
1) imagecreatefromunknown (nie pokazałeś kodu)
2) Obojętnie czy to png czy gif to i tak wypluwasz jako jpg
Kod
imagejpeg($myThumb, $thumbPath);

A przecież jpg nie obsługuje przezroczystości
Dodatkowo jak odczytujesz png to robisż coś takiego
  1. $img = imagecreatefrompng($file);
  2. imagealphablending($img, false);
  3. imagesavealpha($img, true);
  4.  


row
funkcja imagecreatefromunknown

  1. function imagecreatefromunknown($path) {
  2.  
  3. $ext = getimagetype($path);
  4.  
  5. switch ($ext) {
  6. case "jpg":
  7. $img = imagecreatefromjpeg($path);
  8. break;
  9. case "gif":
  10. $img = imagecreatefromgif($path);
  11. break;
  12. case "png":
  13. $img = imagecreatefrompng($path);
  14. break;
  15. }
  16.  
  17. return $img;
  18. }
wookieb
Zastosuj poradę przy odczytywaniu png tak jak Ci pisałem.
Dodatkowo taką samą procedurę musisz wykonać dla $myThumb w przypadku plików png
row
Cytat(wookieb @ 3.01.2010, 13:41:50 ) *
Zastosuj poradę przy odczytywaniu png tak jak Ci pisałem.
Dodatkowo taką samą procedurę musisz wykonać dla $myThumb w przypadku plików png

czyli cały kod jak ma wyglądać? bo nie działa nie tworzą się obrazki, źle coś zrobiłem

ktoś pomoże smile.gif? zapłacę za pomoc

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