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:
- <?
- header("Content-type: image/jpeg");
- // vytvoříme prázdný obrázek o velikosti 400x500
- $image = imagecreatetruecolor(400, 500);
- // definice bílé barvy
- $c = imagecolorallocate($image, 255, 255, 255);
- // vytvoření pozadí pomocí nástroje kreslení obdelníku
- imagefilledrectangle($image, 0, 0, 400, 500, $c);
- // definice červené barvy
- $c = imagecolorallocate($image, 255, 0, 0);
- // vytvoření obdelníku
- imagefilledrectangle($image, 0, 0, 200, 250, $c);
- // a teď příjde ta jediná důležitá část, lépe vynikne na nějakém obrázku
- $color = imagecolorresolvealpha($image, 0, 0, 0, 100);
- imagettftext($image, 20, 45, 100, 200, $color, "arial.ttf", "zkušební text");
- imagejpeg($image);
- imagedestroy($image);
- ?>
Tím je průhledný text hotov.
komentáře
RSS Komentáře



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