Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Biblioteka GD i text z dziwnym białym tłem.
Forum PHP.pl > Forum > PHP
raxon
jeśli mam taki skrypt i gdy generuje mi obrazek to text jest z taką dziwną biała obwódką .



  1. $image = imagecreatefrompng($_POST['tlo']);
  2. imagealphablending($image, false);
  3. imagesavealpha($image, true);
  4.  
  5.  
  6. $rozmiar = 11;
  7. $kat = 0;
  8. $lewa = 60;
  9. $gora = 20;
  10. $kolor = imagecolorallocate($image, 0, 0, 0);
  11.  
  12.  
  13. imagettftext($image, $rozmiar, $kat, $lewa, $gora, $kolor, "arial.ttf", "Witaj!");
Kshyhoo
Zajrzyj do manuala: imagettftext.
raxon
dużo mi to nie mówi a wcześniej też tam szukałem.
Kshyhoo
To nie potrafisz skopiować kodu?
raxon
próbowałem to połączyć i nie wyszło


  1. // Create some colors
  2. $white = imagecolorallocate($image, 255, 255, 255);
  3. $grey = imagecolorallocate($image, 128, 128, 128);
  4. $black = imagecolorallocate($image, 0, 0, 0);
  5.  
  6.  
  7. // The text to draw
  8. $text = 'Testing...';
  9. // Replace path by your own font path
  10. $font = 'arial.ttf';
  11.  
  12. // Add some shadow to the text
  13. imagettftext($image,12, 0, 61, 21, $grey, $font, $text);
  14.  
  15. // Add the text
  16. imagettftext($image, 12, 0, 60, 20, $black, $font, $text);
Kshyhoo
Dziwne, bo mnie wychodzi dobrze:
  1. <?php
  2. header("Content-type: image/png");
  3.  
  4. $im = imageCreate(400, 80);
  5.  
  6. $bialy = ImageColorAllocate($im, 255, 255, 255);
  7. $czarny = ImageColorAllocate($im, 0, 0, 0);
  8. imagefill($im,0,0,$czarny);
  9. //ImageColorTransparent($im, $czarny); // jeśli kolor tła ma być przezroczysty
  10.  
  11. $kolor = imageColorAllocate($im, 255, 255, 255); // czerwony
  12. $pochylenie = 0;
  13. $wielkosc = 35;
  14. $x = 50;
  15. $y = 60;
  16. $napis = "testing...";
  17.  
  18. imagettftext($im, $wielkosc, $pochylenie, $x, $y, $kolor, 'arial.ttf', $napis);
  19.  
  20. imagepng($im);
  21. imagedestroy($im);
  22. ?>
raxon
Cytat(Kshyhoo @ 27.08.2011, 21:46:58 ) *
Dziwne, bo mnie wychodzi dobrze:
  1. <?php
  2. header("Content-type: image/png");
  3.  
  4. $im = imageCreate(400, 80);
  5.  
  6. $bialy = ImageColorAllocate($im, 255, 255, 255);
  7. $czarny = ImageColorAllocate($im, 0, 0, 0);
  8. imagefill($im,0,0,$czarny);
  9. //ImageColorTransparent($im, $czarny); // jeśli kolor tła ma być przezroczysty
  10.  
  11. $kolor = imageColorAllocate($im, 255, 255, 255); // czerwony
  12. $pochylenie = 0;
  13. $wielkosc = 35;
  14. $x = 50;
  15. $y = 60;
  16. $napis = "testing...";
  17.  
  18. imagettftext($im, $wielkosc, $pochylenie, $x, $y, $kolor, 'arial.ttf', $napis);
  19.  
  20. imagepng($im);
  21. imagedestroy($im);
  22. ?>


tylko u ciebie robi nowy obrazek
  1. $im = imageCreate(400, 80);

i wyswietla go w png
  1. header("Content-type: image/png");


a u mnie

  1. $image = imagecreatefrompng($_POST['tlo']);

pobiera tło

  1. imagealphablending($image, false);
  2. imagesavealpha($image, true);

i nakazuje mu być przeźroczystym a nie żeby rogi były białe.


i na końcu zapisuje go

  1. imagepng($image, "$name.png");
  2. imagedestroy($image);




Kshyhoo
To nie problem, zmodyfikuj kod. Zamiast tworzenia nowego obrazka, użyj tego z $_POST['tlo']. Przeźroczystość to też nie problem. Co do wyświetlania - jeżeli chcesz pokazać obrazek na ekranie, to musisz przesłać go do przeglądarki - i stąd ten header("Content-type: image/png");. Zapisujesz obrazek i wysyłasz do przeglądarki....
raxon
no własnie ale jeśli używam obrazek z POSTA to on ma po boku białe tło na przeźroczystym i do tego nadaje te kanały alpha


@edit problem rozwiązałem chodziło funkcje

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