Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Generowanie przezroczystego obrazka png, skrypt typu text to image
josedagamba
post 22.12.2012, 19:08:02
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 22.12.2012

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Kshyhoo
post 22.12.2012, 19:42:17
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Pokombinuj z:
  1. imagealphablending($img, false);
  2. imagesavealpha($img, true);


--------------------
Go to the top of the page
+Quote Post
timon27
post 23.12.2012, 23:50:23
Post #3





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

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


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.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:39