Vložení textu (utf8) do obrázku
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- mrataja
- Člen | 57
Pro vložení textu do obrázku používám níže uvedenou funkci, nicméně i přestože je na lokále všechno v pořádku, na produkčním prostředí se rozbíjí znaky s diakritikou (čtverečky místo znaků, font existuje).
/**
* Insert text into bottom right corner of image.
* @param string string
*/
public function insertText($string = NULL) {
//$string = "Příliš žluťoučký kůň úpěl ďábelské ódy";
if (!$string) return false;
$font = 'arial.ttf';
$font_width = ImageFontWidth($font) * strlen($string) ;
$font_height = ImageFontHeight($font) ;
$im = $this->image;
$x = $this->getWidth() - $font_width - 20; //20 from right
$y = $this->getHeight() - $font_height - 20; //20 from bottom
$text_color = imagecolorallocate ($im, 0, 0,0);//black text
imagettftext($im, 12 , 0, $x, $y, $text_color, $font, $string);
//imagestring ($im, $font, $x, $y, $string, $text_color);
return $im;
}
$image = NImage::fromFile($file);
$image->insertText('Příliš žluťoučký kůň úpěl ďábelské ódy');
$image->save('test.jpg');
Chci se zeptat:
- existuje Nette „způsob“ případně jak podobný případ řešíte
- kterou vlastnost v nastavení serveru mám hledat, když text v utf8 na lokále je v pořádku, ale na produkčním serveru nikoliv