Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Generowanie przezroczystego obrazka png
Forum PHP.pl > Forum > Przedszkole
josedagamba
Witam wszystkich. Jestem tu nowy. Po opanowaniu podstaw html i css przyszedł czas na php. Ktoś dał mi skrypt to mojej strony który generuje tekst do obrazka png.
Niestety nie mam pojęcia jak sprawić aby ten generowany obrazek miał przezroczyste tło. Próbowałem z alpha layer ale to jest jednak zbyt wysoka szkoła jazdy jak na mnie.

Oto kod odpowiedzialny za generowanie obrazka. Czy jest ktoś miły, kto wytłumaczyłby mi jak zmodyfikować ten skrypt? Pozdrawiam i życze Wesołych Świąt.

  1. //Image Generation
  2. $charSize = imagettfbbox($font_size, 0, $font, 'x');
  3. $charWidth = abs($charSize[2] - $charSize[0]);
  4. $charHeight = abs($charSize[7] - $charSize[1]);
  5. $maxChars = $width/$charWidth;
  6. $arrText = explode("\n",wordwrap($text,$maxChars,"\n"));
  7.  
  8. $height = count($arrText)*($charHeight+$font_size)+$font_margin;
  9.  
  10. $rgb_font_color = $this->rgb2array($font_color);
  11. $rgb_bg_color = $this->rgb2array($bg_color);
  12.  
  13. $im = @imagecreate($width, $height);
  14. imagecolorallocate($im, $rgb_bg_color[0], $rgb_bg_color[1], $rgb_bg_color[2]);
  15. $y=$font_size+$font_margin;
  16. foreach($arrText as $arr)
  17. {
  18. $color = imagecolorallocate($im,$rgb_font_color[0],$rgb_font_color[1],$rgb_font_color[2]);
  19.  
  20. $arSize = imagettfbbox($font_size, 0, $font, trim($arr));
  21. $arWidth = abs($arSize[2] - $arSize[0]);
  22. $arHeight = abs($arSize[7] - $arSize[1]);
  23. $position_center = ceil(($width - $arWidth) / 2);
  24.  
  25. imagettftext($im, $font_size, 0, $position_center, $y, $color, $font, trim($arr));
  26. $y=$y+$font_size+$font_margin;
  27.  
  28. }
  29. $image_png = imagepng($im, $dir.$file_name.'.png');
  30. //End of Image Generation
Kshyhoo
Pokombinuj z:
  1. imagealphablending($img, false);
  2. imagesavealpha($img, true);
timon27
Mnie działa mój kod:
  1. <?php
  2. header('Content-type: image/png');
  3. $image = imagecreatefrompng("blank.png");
  4. imagealphablending($image, false);
  5. imagesavealpha($image, true);
  6. $black = imagecolorallocate($image, 43, 0, 0);
  7. imagestring($image, 5, 0, 0, 'Testing...', $black);
  8. imagepng($image);
  9. ?>


Gdzie jako podstawy użyłem "czystego" png, a potem sobie po nim rysowałem.
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-2024 Invision Power Services, Inc.