$stickerbody = $params['stickerbody'];
define('WIDTH', 230);
define('HEIGHT', 230);
$image = imagecreatetruecolor(WIDTH,HEIGHT)
or die('Cannot create image');
$image = imageCreateFromPng("C:/_majordomo/htdocs/images/report_v.png");
// Шрифт текста
$font = './cms/font/impact.ttf';
// Размер шрифта
$font_size = 16;
$colorfont="0x7749c8";
// Ширина области для вывода текста
$width_text = 140;
$align = "center";
$text = $stickerbody;
// Заливаем изображение цветом
//imagefill($image, 1, 1, 0xFFF729);
// Разбиваем наш текст на массив слов
$arr = explode(' ', $text);
// Возращенный текст с нужными переносами строк, пока пустая
$ret = "";
// Перебираем наш массив слов
foreach($arr as $word)
{
// Временная строка, добавляем в нее слово
$tmp_string = $ret.' '.$word;
// Получение параметров рамки обрамляющей текст, т.е. размер временной строки
$textbox = imagettfbbox($font_size, 0, $font, $tmp_string);
// Если временная строка не укладывается в нужные нам границы, то делаем перенос строки, иначе добавляем еще одно слово
if($textbox[2] > $width_text)
$ret.=($ret==""?"":"\n").$word;
else
$ret.=($ret==""?"":" ").$word;
}
// Разбиваем снова на массив строк уже подготовленный текст
$arr = explode("\n", $ret);
// Расчетная высота смещения новой строки
$height_tmp = 0;
//Выводить будем построчно с нужным смещением относительно левой границы
foreach($arr as $str)
{
// Размер строки
$testbox = imagettfbbox($font_size, 0, $font, $str);
// Рассчитываем смещение
if($align=="center")
$left_x = round(($width_text - ($testbox[2] - $testbox[0]))/2);
else
$left_x = round($width_text - ($testbox[2] - $testbox[0]));
// Накладываем текст на картинку с учетом смещений
imagettftext($image, $font_size ,0 , 15 + $left_x, 35 + $height_tmp, $colorfont, $font, $str); // 50 - это отступы от края
// Смещение высоты для следующей строки
$height_tmp = $height_tmp + 20;
}
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
Красота!!! Новый 2017 год сделает MajorDomo Сергея лидирющим в области программного обеспечения всех мировых умных домов.В самом деле очень интересно. Но хотелось бы для Linux тоже. В частности ttf font. Может оформить это как отдельный модуль? В котором можно было бы выбирать, что отправлять в Telegram с отдельным расписанием и выбором свойств объектов. Надеюсь Сергей поможет. Это как я думаю отдельная большая ветвь.
Чесно говоря пока сам не совсем понимаю как унифицировать Ваше детище, аккуратно вписать в имеющююся систему. Быстро приходит решение выбор сообщений Алисы(в лог, говорить...). Добавить Telegram. Но вывод графиков и других событий...Может модуль SAY не только говорящим сделать, а еще и Telegram-ным, с выводом графиков и слипа домашней страницы, на которой выведены все актуальные параметры.
Согласен, что проще делать скриптик, но если мне 57 лет и из них я 35 лет занимался разработкой и программированием, хотя не совсем в области WEB , но мне уже хочется делать Copy Past. Не хочу спорить, всегда болел только за удобство пользователя. Совсем не лень мною движет, а желание сделать удобный интерфейс для современных User-ов.
Честно, я тащусь от разработки Сергея. Я периодически писал, что Сергей создал не умный дом, а серьезрый инструмент, который надо двигать во все сферы нашей жизнедеятельности. Я бы рассматривал данный инструмент как ПО для банков и т.п. естественно для внутренного пользования. Любая транзакция может контролироваться, я уже не говорю о температурных и санкционных режимах серверных и т.п. любой кабинет руководителя. Возможно я мечтатель, но Сергей создал то, о чем я всегда мечтал и нет предела совершенству. Спасибо тебе Сергей огромное.