Imagettftext transparency - jak na průhledný text, aneb další způsob jak vytvořit watermark

Jak jednoduše do obrázku napsat průhledný text? Pozor na to jak PHP chápe transparentnost, při spojení obrázků a zadání transparentnosti jde spíše o stanovení opacity, tedy 0 je maximálně průhledný, naopak transparenstnost je 100 pro maximálně průhledné.


Jediný trik je ve vytvoření průhledné barvy, kterou budeme zapisovat text do obrázku. Použijeme příkaz imagecolorresolvealpha. K psaní textu do obrázku používáme imagettftext.

Barva se definuje pomocí RGB hodnot $color = imagecolorresolvealpha($image, 255, 255, 255, 100);, poslední hodnota je průhlednost.

Pro vypsání textu do obrázku zadáváme parametry v pořadí $image=vytvořený obrázek pro zpracování (např. pomocí imagecreatefromjpg), 12=velikost písma, 45=úhel sklonu, 100=x souřadnice, 100=y souřadnice, $color=vytvořená průhledná barva, "arial.ttf"=název true type fontu umístěného ve stejném adresáři jako vykonávaný skript (lze cestu upravit), "zkušební text".

imagettftext($image, 12, 45, 100, 100, $color, "arial.ttf", "zkušební text");

Celý zdrojový kód pak vypadá nějak tak:

  1. <?
  2. header("Content-type: image/jpeg");
  3. // vytvoříme prázdný obrázek o velikosti 400x500
  4. $image = imagecreatetruecolor(400, 500);
  5. // definice bílé barvy
  6. $c = imagecolorallocate($image, 255, 255, 255);
  7. // vytvoření pozadí pomocí nástroje kreslení obdelníku
  8. imagefilledrectangle($image, 0, 0, 400, 500, $c);
  9. // definice červené barvy
  10. $c = imagecolorallocate($image, 255, 0, 0);
  11. // vytvoření obdelníku
  12. imagefilledrectangle($image, 0, 0, 200, 250, $c);
  13. // a teď příjde ta jediná důležitá část, lépe vynikne na nějakém obrázku
  14. $color = imagecolorresolvealpha($image, 0, 0, 0, 100);
  15. imagettftext($image, 20, 45, 100, 200, $color, "arial.ttf", "zkušební text");
  16. imagejpeg($image);
  17. imagedestroy($image);
  18. ?>

Tím je průhledný text hotov.
 

komentáře

RSS Komentáře k článku RSS Komentáře   Add to Google
31.05.2008 17:04 | Anonym (orava) | pecka

Toto je super navod a este ze som za dozvedel o tomto blogu!

Jméno
Název
Text
Lze používat Texy! syntax. Příklad syntaxe: "text odkazu":odkaz, **tučně**, *kurzíva*, `code`. PHP kód uzavírejte do <?php ... ?> a JavaScript do <script> ... </script>